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

发布于 2024-09-27 03:11:49 字数 1364 浏览 3 评论 0原文

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

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

alt text

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

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

当我完成这两项设置时,我假设任何页面请求都将重定向到 login.aspx 页面。但事实并非如此。所以我很困惑。两组配置如何协同工作?为什么页面请求没有重定向?

谢谢

更新

终于我让它工作了,我想我现在明白了。我的网站结构如下:

alt text

这是关于修改授权规则的。拒绝所有未经授权的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>

I just start to learn web programming using IIS 7.5 in windows 2008 R2, and ASP.Net 4.

I notice that both IIS and ASP.Net can define Authentication rules. In IIS, there is a form authentication setting where I can redirect user to specified page for authentication, like below:

alt text

And then, in ASP web.config file, I find similar settings:

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

When I finish both settings, I assume any page request will be redirect to the login.aspx page. But it didn't. So I am confused. How do the 2 sets of configs work together? And why page request is not redirected?

Thanks

Update

Finally I get it working and I think I understand it now. My website structure is like below:

alt text

It is about modifying Autherization rules. Deny all unauthorized users for root:

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

CSS files should be allowed for all users, so I have Styles\web.config:

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

and only allow unauthorized users to access register.aspx, so I have Account\web.config:

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

征﹌骨岁月お 2024-10-04 03:11:49

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

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

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

There's another component you need to configure: authorization. If you don't, unauthorized users have access to all pages and will not be redirected to the login page. For example:

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

This specifies that all unauthenticated users are denied access to pages in your application. The authorization element is part of the system.web configuration section.

夏夜暖风 2024-10-04 03:11:49

当您在 IIS 中设置带有身份验证的内容时(在您的情况下是表单身份验证)。它还使用相同的设置更改映射的项目 webconfig 文件。这就是为什么您在两个模块中看到相同的信息。

When you set something in IIS with authentication ( in your case form authentication). It also change your mapped project webconfig file with the same settings. That's why you see same information in both modules.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文