【发布时间】:2014-12-28 22:26:07
【问题描述】:
我有一个使用基本身份验证的 ASP MVC3 restful 服务。搜索堆栈溢出后,我创建了以下代码。
public class BasicAuthentication : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var req = filterContext.HttpContext.Request;
if (String.IsNullOrEmpty(req.Headers["Authorization"]))
{
filterContext.Result = new HttpNotFoundResult();
}
else
{
var credentials = System.Text.ASCIIEncoding.ASCII
.GetString(Convert.FromBase64String(req.Headers["Authorization"].Substring(6)))
.Split(':');
var user = new { Name = credentials[0], Password = credentials[1] };
if(!(user.Name == "username" && user.Password == "passwords"))
{
filterContext.Result = new HttpNotFoundResult();
}
}
}
}
1) ActionFilterAttribute 是最好的方法吗?
2) 设置 filterContext.Result 是拒绝访问控制器方法的正确方法吗?
3) 我做错了什么吗?
谢谢。
-尼克
【问题讨论】:
-
您是使用基本的表单/自定义类型身份验证和基本(两阶段身份验证)还是仍在使用域帐户?
标签: asp.net-mvc-3 basic-authentication