【发布时间】:2016-06-10 06:36:12
【问题描述】:
我有 asp.net 网络应用程序。我只想允许经过身份验证的用户使用此应用程序。任何匿名用户都应该得到拒绝访问错误,或者应该被重定向到登录页面。所以我在配置文件中添加了“授权”元素来拒绝所有匿名用户。我排除了login.aspx 页面,以便匿名用户可以访问它。
<system.web>
<authentication mode="None" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
<location path="login.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
注意:此应用程序使用 Azure AD 进行身份验证,这就是您看到身份验证模式 =“无”的原因。当用户访问登录页面时,它只是将用户重定向到 Azure 站点进行身份验证。这个认证部分工作正常。
问题
1. 考虑我的应用程序托管在本地 IIS 中。由于只
login.aspx 被排除在授权之外,如果我输入
http://localhost 我收到拒绝访问错误。我必须明确
输入http://localhost/login.aspx 进行登录。我该如何改变这个
所以当我输入http://localhost IIS 将重定向到
http://localhost/login.aspx(我已经尝试过设置
login.aspx 作为 IIS 默认文档下的第一页)
2. 我需要做什么配置,所以如果匿名用户尝试
访问http://localhost 下的任何资源,他会被重定向
到http://localhost/login.aspx(这也将照顾第一
问题)
【问题讨论】:
-
为什么不显示所有用户
login.aspx授权? -
这就是问题所在。用户不会输入 www.mydomain.com/login.aspx ...用户只会输入 www.mydomain.com 但如果我有
拒绝所有匿名用户的访问,那么它会给出“拒绝访问”如果我只输入 www.mydomain.com.. 则会出错 -
我明白了,感谢您的澄清。
标签: asp.net authentication iis web-config authorization