从Windows切换到表单身份验证

时间:2014-09-10 15:27:36

标签: c# asp.net authentication webforms

我在其中一个我正在研究的网络项目中获得了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>

我可能犯的错误是什么?

1 个答案:

答案 0 :(得分:0)

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

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

要检查这一点,您可以执行以下操作:

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

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