从Windows切换到表单身份验证

本文关键字:表单 身份验证 Windows | 更新日期: 2023-09-27 18:21:19

我在一个web项目中使用了windows身份验证。由于所有其他表单都有身份验证,我想在这个特定的项目中也实现它。我关注了这篇文章http://www.codeproject.com/Articles/37558/Windows-Authentication-Using-Form-Authentication并添加了新的登录页面,但在运行该项目后,我被重定向到了以前使用的默认页面。

以下是我对web.config所做的更改:

<authentication mode="Forms">
  <forms loginUrl="login.aspx"></forms>
</authentication>
<authorization>
  <deny users="?"/>
</authorization>

我可能犯了哪些错误?

从Windows切换到表单身份验证

Windows身份验证切换到窗体身份验证时,您需要在IIS中禁用应用程序的Windows身份验证。当您在web.config中启用Forms Authentication时,它不会自动为您执行此操作。

您很可能在应用程序的IIS中同时启用了窗体和Windows身份验证。我相信IIS在这种情况下会默认为Windows身份验证,并绕过您的登录表单。

要进行检查,您可以执行以下操作:

  • 转到IIS
  • 查找应用程序
  • 转到身份验证
  • 调整以下内容
    • 匿名身份验证:已启用
    • ASP.NET模拟:禁用
    • 基本身份验证:禁用
    • 摘要式身份验证:禁用
    • 表单身份验证:已启用
    • Windows身份验证:禁用

如果您不想在登录前使用登录页,也可以禁用匿名身份验证。