我在IIS上部署了一个ASP.NET MVC4网站,启用了Windows身份验证。我的配置文件有以下设置:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
我的理解是,这将允许我进行身份验证,而无需输入凭据;即内联网站点。
除了第一页加载外,它按预期工作。当我第一次访问该网站时,我被引导到以下URL:
http://localhost/SandboxWebsite/login.aspx?ReturnUrl=%2fSandboxWebsite
这显然是一个要求凭据的页面。当我再次导航到http://localhost/SandboxWebsite/
时,我会自动进行身份验证,而无需输入任何凭据。
为什么会发生这种情况,我该如何预防呢?
答案 0 :(得分:3)
问题在于,虽然匿名访问被禁用为设置,但没有授权规则来拒绝匿名用户。为什么这会将我重定向到Login.aspx我不知道,但我通过添加以下规则来修复它。
IIS&gt;我的网站&gt; .NET授权规则
答案 1 :(得分:1)
约翰,
这是一个很长的镜头,但您是否尝试使用LocalHost以外的地址访问该网站?可能是您的ASP.NET MVC4网站由于其设置方式而需要特定的域名/计算机名称或IP地址。
您可以更改主机文件以对其进行测试。
希望这会有所帮助。 多吉