7

如果用户未登录并且他们请求标记为 的操作[Authorize],则响应是重定向到 Account/LogOn 操作(状态代码 302 Found)。

有没有办法让响应变成状态码 403 Forbidden 呢?

4

2 回答 2

10

创建一个继承自AuthorizeAttribute. 然后重写这个方法:

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{ 
   Response.StatusCode = 403;
   Response.Status = "Forbidden";
   Response.StatusDescription = "Forbidden";
   Response.End();
   Response.Close();

}
于 2011-01-19T21:01:58.767 回答
0

如果用户未登录,则更合适的状态代码是 401:未授权。这是 AuthorizeAttribute 默认返回的内容。

FormsAuthenticationModule 将捕获此返回代码并将其转换为重定向。如果您可以禁用(甚至不加载它),那么这将返回给调用者。

于 2011-10-20T20:44:44.683 回答