asp.net-mvc – ASP.NET MVC – HTTP验证提示
|
是否可以让我的应用程序要求用户名和密码提示之前渲染视图?
http://twitter.com/account/verify_credentials.xml 所以在渲染视图||之前文件它要求您插入您的用户名和密码,我认为这是直接在服务器上,因为curl请求是基于用户名:密码,以及像这样: curl -u user:password http://twitter.com/account/verify_credentials.xml 因为我试图构建一个API遵循相同的结构,我想知道如何我可以做这个ASP.NET MVC C#。我已经使用这个ruby rails和它的漂亮简单像: before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic do |username,password|
username == "foo" && password == "bar"
end
我不认为[授权]过滤器是相同的,因为我相信它只是一个重定向, 提前致谢 更新: 实际上请求需要此身份验证的网页(即Twitter) request.Credentials = new NetworkCredential("username","password");
这将反映提示的用户名和密码。 所以,它是完全相同的事情,但从另一方面,如果可以根据请求提供信息的身份验证提示,我如何要求对此请求的此身份验证? 所以每次有人试图向我的应用程序请求示例: http://myapplication/clients/verify_credentials 它应该请求与服务器提示符的用户名和密码 curl -u user:password http://myapplication/clients/verify_credentials 解决方法那么,要要求基本身份验证,您需要返回401状态码。但这样做将导致当前认证模块执行其默认的未授权处理程序(对于表单认证,这意味着重定向到登录页面)。我写了一个ActionFilterAttribte,看看是否可以得到你想要的行为,当没有认证模块安装在web.config。 public class RequireBasicAuthentication : ActionFilterAttribute {
public override void OnActionExecuting(ActionExecutingContext filterContext) {
var req = filterContext.HttpContext.Request;
if (String.IsNullOrEmpty(req.Headers["Authorization"])) {
var res = filterContext.HttpContext.Response;
res.StatusCode = 401;
res.AddHeader("WWW-Authenticate","Basic realm="Twitter"");
res.End();
}
}
}
而控制器动作: [RequireBasicAuthentication]
public ActionResult Index() {
var cred = System.Text.ASCIIEncoding.ASCII
.GetString(Convert.FromBase64String(
Request.Headers["Authorization"].Substring(6)))
.Split(':');
var user = new { Name = cred[0],Pass = cred[1] };
return Content(String.Format("user:{0},password:{1}",user.Name,user.Pass));
}
该操作成功打印输入的用户名和密码。但我真的怀疑这是最好的方法做到这一点。除了以这种方式要求用户名和密码之外,你别无选择吗? (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在ASP.Net MVC中长时间运行SQL查询的最佳实践
- asp.net – 与WebAPI异步时保留HttpContext(中等
- asp.net-core – 在ASP.net Core中使用BeginColl
- 使用ASP.NET和C#在DropDownList中选择多个值
- asp.net-mvc – 为什么DisplayFormat DataFormat
- asp.net-mvc – Asp .Net Core – 无法安装Micro
- asp.net-mvc-4 – 同一网站的不同域的robots.txt
- ASP.NET MVC中多个浏览器选项卡中的唯一会话
- asp.net 文章分页显示实现代码
- 是*不*使用asp.net成员资格提供程序一个坏主意?
