如果用户未登录并且他们请求标记为 的操作[Authorize]
,则响应是重定向到 Account/LogOn 操作(状态代码 302 Found)。
有没有办法让响应变成状态码 403 Forbidden 呢?
如果用户未登录并且他们请求标记为 的操作[Authorize]
,则响应是重定向到 Account/LogOn 操作(状态代码 302 Found)。
有没有办法让响应变成状态码 403 Forbidden 呢?
创建一个继承自AuthorizeAttribute
. 然后重写这个方法:
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
Response.StatusCode = 403;
Response.Status = "Forbidden";
Response.StatusDescription = "Forbidden";
Response.End();
Response.Close();
}
如果用户未登录,则更合适的状态代码是 401:未授权。这是 AuthorizeAttribute 默认返回的内容。
FormsAuthenticationModule 将捕获此返回代码并将其转换为重定向。如果您可以禁用(甚至不加载它),那么这将返回给调用者。