我正在使用使用表单身份验证的 ASP.NET 应用程序。但是,如果我关闭除表单之外的所有身份验证方法,我会得到一个
HTTP 错误 401.2 - 未经授权
尝试浏览任何页面时。但是,启用匿名身份验证可以解决此问题。是什么导致了这种行为?谢谢!
我正在使用使用表单身份验证的 ASP.NET 应用程序。但是,如果我关闭除表单之外的所有身份验证方法,我会得到一个
HTTP 错误 401.2 - 未经授权
尝试浏览任何页面时。但是,启用匿名身份验证可以解决此问题。是什么导致了这种行为?谢谢!
通过这样做,您只允许用户访问已登录您网站的页面(登录页面除外)。
直接来自 MSDN:
表单身份验证允许您使用自己的代码对用户进行身份验证,然后在 cookie 或页面 URL 中维护身份验证令牌。Forms 身份验证通过 FormsAuthenticationModule 类参与 ASP.NET 页面生命周期。您可以通过 FormsAuthentication 类访问表单身份验证信息和功能。
通过loginUrl
在 web.config 中设置 a ,您可以指示您的应用程序登录页面可以供匿名用户访问。如果用户尝试访问除 loginUrl 以外的页面,那么他们将被重定向到该 loginUrl。
很多时候,一个网站会同时使用匿名和表单。匿名允许访问公共页面和表单身份验证以隐藏未登录到您网站的页面。
如果您同时使用 ASP.Net Membership 和登录控件,使用 (forms auth) 非常好,但如果您不打算使用这些,则无需担心,Forms Authentication
因为您可以构建自己的方法让用户获得访问权限。
所以这就是说,如果你想把它全部锁定在一个页面上,那么在你的 web.config 中设置一个 loginUrl
<authentication mode="Forms">
<forms name="myLogin" loginUrl="/Login.aspx">
</forms>
</authentication>
这里的答案元素: http ://forums.iis.net/t/1159935.aspx/1
更详细的解释: http ://www.asp.net/learn/security/tutorial-02-cs.aspx