【发布时间】:2016-02-01 18:09:37
【问题描述】:
除了控制器方法上的 401 未授权外,我无法让我的自定义授权属性返回任何内容。
我已经设置了一个非常基本的自定义授权属性:
public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
filters.Add(new HandleErrorAttribute());
filters.Add(new AuthorizeAttribute());
filters.Add(new CustomAuthorizationAttribute()); //<---Custom
}
类本身:
public class CustomAuthorizationAttribute : System.Web.Mvc.AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return true;
}
protected override HttpValidationStatus OnCacheAuthorization(HttpContextBase httpContext)
{
return base.OnCacheAuthorization(httpContext);
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
base.HandleUnauthorizedRequest(filterContext);
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
}
}
我已经用 CustomAuthorizationAttribute 修饰了我的控制器的操作:
[HttpPost]
[CustomAuthorization]
public ActionResult UploadFile(FormCollection fileUpload)
{...
显然我必须遗漏一些简单的东西,因为这段代码总是会导致 401 未经授权的响应。
AuthorizeCore 方法断点未命中,但 OnAuthorization 方法偶尔会命中。
我是 MVC5 的新手。我错过了什么?如何根据我的自定义条件使此授权生效?
提前致谢。
【问题讨论】:
标签: c# asp.net asp.net-mvc-5 authorization