使用Windows身份验证,但是重定向到表单身份验证登录页面?

时间:2011-02-21 15:59:10

标签: asp.net iis-7 forms-authentication windows-authentication windows-server-2008-r2

我们正在运行IIS7并启用了Windows身份验证。其他一切都被禁用了。当我们转到页面时,我们不会提示我们进行Windows登录,但是会被重定向到默认的表单身份验证登录页面(帐户/登录?ReturnUrl =%2f)。

有什么想法吗?感谢。

5 个答案:

答案 0 :(得分:6)

以及:

<authentication mode="Windows"></authentication>
<authorization>
  <allow users="*"/>
</authorization>

您也可能需要这两个appSettings

<appSettings>
  <add key="autoFormsAuthentication" value="false" />
  <add key="enableSimpleMembership" value="false"/>
</appSettings>

请参阅MVC3发行说明中的​​this answer on SOKnown Issues

答案 1 :(得分:4)

如果有人到目前为止并且其他答案尚未解决问题,请检查项目的App_Code文件夹中名为Startup.Auth.cs的文件。在我的情况下,下面的代码块是活动的,导致重定向到我不想使用的登录页面。

    // Enable the application to use a cookie to store information for the signed in user
    // and also store information about a user logging in with a third party login provider.
    // This is required if your application allows users to login
    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        LoginPath = new PathString("/Account/Login")
    });
    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

答案 2 :(得分:3)

您是否确保在asp.net应用程序中启用了Windows身份验证而不是表单?

确保web.config文件设置为:

<authentication mode="Windows"/>
<authorization>
    <allow users="*"/>
</authorization>

您的应用程序中的身份验证模式可能仍设置为表单身份验证,这就是表单功能正在发挥作用的原因。

如果您的应用程序中有嵌套文件夹,也不要忘记调整任何嵌套web.config文件。

答案 3 :(得分:0)

实际上这个SO问题为我解决了 - 我还没有尝试过上述解决方案:

ASP.NET MVC3 and Windows Auth on IIS keeps redirecting to /Account/Login

只是检查你的bin目录是否包含以下内容: WebMatrix.Data.dll 和/或 WebMatrix.WebData.dll ,如果是 - 删除它们!

然后确保他们从未通过从项目的参考列表中删除它们再次发布到bin中。

答案 4 :(得分:0)

上面的

@panhandel解决方案应该是公认的答案。它引导我朝着正确的方向前进。顺便说一句,在我看来,它是App_Start文件夹,而不是App_Code。 即使删除引用并排除代码文件,它也无法解决我的问题。我必须删除并重新创建整个解决方案。但是这次我很小心,不要因为使用Windows身份验证而在“身份验证”部分保留默认选择“个人用户帐户”。

enter image description here