相关疑难解决方法(0)

MVC 5.0 [AllowAnonymous]和新的IAuthenticationFilter

当我创建一个新的asp.net mvc 4.0应用程序时,我做第一件事就是创建并设置一个自定义授权,global filter如下所示:

//FilterConfig.cs
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
 //filters.Add(new HandleErrorAttribute());
 filters.Add(new CustomAuthorizationAttribute());
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了CustomAuthorizationAttribute这样的:

//CustomAuthorizationAttribute.cs
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        if (filterContext.HttpContext.Request.IsAjaxRequest())  
        {
            //Handle AJAX requests
            filterContext.HttpContext.Response.StatusCode = 403;
            filterContext.Result = new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }
        else
        {
            //Handle regular requests
            base.HandleUnauthorizedRequest(filterContext); //let FormsAuthentication make the redirect based on the loginUrl defined in the web.config (if any)
        }
    }
Run Code Online (Sandbox Code Playgroud)

我有两个控制器:HomeControllerSecureController

HomeController使用[AllowAnonymous] …

c# asp.net-mvc-5

16
推荐指数
3
解决办法
2万
查看次数

标签 统计

asp.net-mvc-5 ×1

c# ×1