[英]Authentication settings in IIS 7.5 and ASP.Net, what is difference?
我刚刚开始在Windows 2008 R2和ASP.Net 4中使用IIS 7.5学习Web编程。
我注意到IIS和ASP.Net都可以定义身份验证规则。 在IIS中,有一个表单身份验证设置,我可以将用户重定向到指定的页面进行身份验证,如下所示:
然后,在ASP web.config文件中,我找到类似的设置:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
当我完成两个设置时,我假设任何页面请求都将重定向到login.aspx页面。 但事实并非如此。 所以我很困惑。 2套配置如何协同工作? 为什么不重定向页面请求?
谢谢
更新
最后我开始工作,我想我现在明白了。 我的网站结构如下:
它是关于修改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>
您需要配置另一个组件:授权。 如果不这样做,未经授权的用户可以访问所有页面,并且不会被重定向到登录页面。 例如:
<authorization>
<deny users="?" />
</authorization>
这指定拒绝所有未经身份验证的用户访问应用程序中的页面。 authorization
元素是system.web
配置部分的一部分。
在IIS中使用身份验证设置某些内容时(在您的情况下为表单身份验证)。 它还使用相同的设置更改映射的项目webconfig文件。 这就是为什么你在两个模块中看到相同的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.