IIS 7.5和ASP.Net中的身份验证设置有什么区别?

时间:2010-10-08 11:19:37

标签: asp.net authentication iis-7 web-config

我刚刚开始在Windows 2008 R2和ASP.Net 4中使用IIS 7.5学习Web编程。

我注意到IIS和ASP.Net都可以定义身份验证规则。在IIS中,有一个表单身份验证设置,我可以将用户重定向到指定的页面进行身份验证,如下所示:

alt text

然后,在ASP web.config文件中,我找到了类似的设置:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>

当我完成两个设置后,我认为任何页面请求都将重定向到login.aspx页面。但事实并非如此。所以我很困惑。 2套配置如何协同工作?为什么不重定向页面请求?

由于

更新

最后我开始工作了,我想我现在明白了。我的网站结构如下:

alt text

它是关于修改Autherization规则。拒绝所有未经授权的root用户:

    <authorization>
        <deny users="?" />
    </authorization>

所有用户都应该允许CSS文件,所以我有Styles \ web.config:

    <authorization>
        <allow users="*" />
    </authorization>

并且只允许未经授权的用户访问register.aspx,所以我有Account \ web.config:

  <location path="Register.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>

2 个答案:

答案 0 :(得分:3)

您需要配置另一个组件:授权。如果不这样做,未经授权的用户可以访问所有页面,并且不会被重定向到登录页面。例如:

<authorization>
    <deny users="?" />
</authorization>

这指定拒绝所有未经身份验证的用户访问您应用程序中的页面。 authorization元素是system.web配置部分的一部分。

答案 1 :(得分:1)

当您在IIS中使用身份验证设置某些内容时(在您的案例中进行身份验证)。它还使用相同的设置更改映射的项目webconfig文件。这就是为什么你在两个模块中看到相同的信息。