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