1

我有一个使用表单身份验证的面向公众的 MVC3 站点。使用表单身份验证,如果用户未获得授权,则会将重定向发送到登录页面。我不希望这种行为,而是希望服务器以未经授权的 401 响应。有没有一种简单的方法可以做到这一点?

4

1 回答 1

3

你的意思是这样的吗?

public class 401AuthorizeAttribute : AuthorizeAttribute
{
    private class Http401Result : ActionResult
    {
        public override void ExecuteResult(ControllerContext context)
        {
            // Set the response code to 401.
            context.HttpContext.Response.StatusCode = 401;
            context.HttpContext.Response.End();
        }
    }

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.Result = new Http401Result();
    }
}

您必须使用此属性而不是[Authorize].

于 2012-06-07T18:15:21.270 回答