Windows 集成身份验证在第一页加载时不起作用

Windows Integrated Authentication not working on first page load

我在 IIS 上部署了一个 ASP.NET MVC4 网站,启用了 Windows 身份验证。我的配置文件有这个设置:

<authentication mode="Windows" />
<authorization>
    <deny users="?" />
</authorization>

我的理解是,这将使我无需输入凭据即可进行身份验证;即内部网站。

这按预期工作,但第一页加载除外。当我第一次访问该网站时,我被定向到以下 URL:

http://localhost/SandboxWebsite/login.aspx?ReturnUrl=%2fSandboxWebsite

这显然是一个要求凭据的页面。当我再次导航到 http://localhost/SandboxWebsite/ 时,我将自动进行身份验证,而无需输入任何凭据。

为什么会发生这种情况,我该如何预防?

约翰,

希望不大,但您是否尝试过使用 LocalHost 以外的地址访问该站点?可能是您的 ASP.NET MVC4 网站需要特定域 name/computer 名称或 IP 地址,因为它的设置方式。

您可以更改您的主机文件来测试这一点。

希望这对您有所帮助。 多杰

问题是,虽然匿名访问作为一项设置被禁用,但没有授权规则拒绝匿名用户。为什么这会将我重定向到 Login.aspx 我不知道,但我通过添加以下规则修复了它。

IIS > MyWebsite > .NET 授权规则