.NET 4.0 Forms身份验证更改?

时间:2010-06-15 11:25:50

标签: asp.net asp.net-4.0

升级到.NET 4.0后,我在Forms身份验证中看到了一些新行为。这仅在IIS 6上发生,而不是在7上发生。

背景 - 在web.config中,我们配置表单身份验证,然后使用<authorization&gt;标签以全局拒绝匿名/未经身份验证的用户访问。然后我们明确允许使用<location&gt;访问login.aspx页面。标签。一般来说,这种方法很好,就像我们使用.NET 2.0(3.5)时一样。

只有当我们访问网站的根路径时才会出现此问题,即“http://myserver/”。我们的默认文档在IIS中配置为login.aspx。在.NET 4.0下,访问该URL后,我们将重定向到“http://myserver/login.aspx?ReturnUrl=/”。如果您从这里登录,则您已登录并返回登录页面(yuck)。

只是想在这里发帖,看看是否有其他人在体验这一点。它没有列在我能找到的任何“重大变化”文档中。我错过了什么,或者UrlAuthorization模块已经改变,并且不再是关于IIS默认文档的“智能”。

1 个答案:

答案 0 :(得分:2)

您不应将IIS默认为login.aspx

ASP.NET有自己的机制来确保经过身份验证的访问。 特别是对于需要经过身份验证的用户的内容的任何未经身份验证的请求,它会将其重定向到Web.config authentication\forms元素的loginUrl属性中指定的页面。

...
<authentication mode="Forms" ...>
    <forms name="login" loginUrl="login.aspx" ... />
</authentication>
...

('login.aspx'是该属性的默认值)

相关问题