我使用表单身份验证面向公众面对MVC3网站。使用表单身份验证,如果用户未经授权,则会将重定向发送到登录页面。我不希望这种行为,而是希望服务器以未经授权的方式响应401。有没有一种简单的方法来实现这一目标?
答案 0 :(得分: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]
。