有没有办法让 AuthorizeAttribute 响应状态代码 403 Forbidden 而不是重定向?
如果用户未登录并且请求标记为 [Authorize]
的操作,则响应是重定向到帐户/登录操作(状态代码 302 Found)。
有没有办法让响应变成状态代码 403 Forbidden?
If the user is not logged in and they request an action marked [Authorize]
, then the response is a redirect to the Account/LogOn action (status code 302 Found).
Is there a way to make the response be status code 403 Forbidden instead?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建一个继承自
AuthorizeAttribute
的操作过滤器。然后重写这个方法:Create an action filter that inherits from
AuthorizeAttribute
. Then override this method:如果用户未登录,则更合适的状态代码是 401:未经授权。这是 AuthorizeAttribute 默认返回的内容。
FormsAuthenticationModule 将捕获此返回代码并将其转换为重定向。如果您可以禁用(或者甚至不加载它),那么这将返回给调用者。
If the user is not logged in then the more appropriate status code is 401:Unauthorized. This is what the AuthorizeAttribute returns by default.
FormsAuthenticationModule will catch this return code and convert it into the redirect. If you can disable (or not even load it) then this will be returned to the caller.