|
|
1
3
不幸的是,这正是ASP.NET不断出错的原因之一。尽管MS和.NET框架团队完全理解身份验证和授权之间的区别,但他们仍然坚持将未经授权视为未经身份验证。我不知道为什么。 这只是FormsAuthentication模块处理程序的一个怪癖,因为它返回的是401未授权,而不是403禁止。(HTTP标准以这种方式将身份验证与授权混淆,这并没有帮助)。 这不是你可以轻易覆盖的,所以你唯一的办法就是检查你的登录页面,看看他们是否已经登录,以及他们是否被重定向。。。这不是万无一失的,但这是一种处理方法。 您不知道使用的是.NET的哪个版本,但如果您使用的是.NET 4.5,那么您还有另一个选项,即使用本文中的SuppressFormsAuthenticationRedirect选项: |
|
|
2
2
2项检查:如果他们已通过认证&&如果有一个返回url(如果发送到登录页面,它将在那里)。
|
|
|
3
0
未经授权的重定向状态代码为302,但当它重定向到登录页面时,该代码将覆盖状态200。 为了将用户重定向到未授权页面而不是登录页面,黑客将在全局中实现Application_EndRequest,并检查响应状态代码302,这是从当前调用到操作的临时重定向。
|