ASP.NET安全性:拒绝匿名访问登录页
我想拒绝所有匿名访问我的登录页面,只允许具有特定角色的人查看该页面或该目录下的任何内容。这可能吗?我曾尝试在web.config中实现此功能,但没有成功:(ASP.NET安全性:拒绝匿名访问登录页,asp.net,security,web-config,anonymous,Asp.net,Security,Web Config,Anonymous,我想拒绝所有匿名访问我的登录页面,只允许具有特定角色的人查看该页面或该目录下的任何内容。这可能吗?我曾尝试在web.config中实现此功能,但没有成功:( 谢谢这只能在内部网应用程序中实现,在该应用程序中,您的用户将通过Active directory的身份验证。请参阅 否则,如果用户无权访问登录页面,他们将如何登录 我更愿意在实际内容页上实施访问控制,或者在用户尝试登录时进行额外检查,让他们知道他们需要担任某个角色才能成功登录到系统。是的,您可以……假设您的客户机都在运行与您相同的AD域中的
谢谢这只能在内部网应用程序中实现,在该应用程序中,您的用户将通过Active directory的身份验证。请参阅 否则,如果用户无权访问登录页面,他们将如何登录
我更愿意在实际内容页上实施访问控制,或者在用户尝试登录时进行额外检查,让他们知道他们需要担任某个角色才能成功登录到系统。是的,您可以……假设您的客户机都在运行与您相同的AD域中的Windows工作站您的IIS Web服务器和正在使用Internet Explorer(因此,仅限intranet,不通过Internet)。您希望将IIS配置为仅接受集成的Windows身份验证,这将强制客户端工作站使用Kerberos向IIS提供身份验证信息。下面介绍如何配置此信息。在web.config中:
<configuration>
<system.web>
<location path="MyLoginPage.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
</system.web>
</configuration>
:
属性:用户
被拒绝访问资源的用户名的逗号分隔列表。
问号(?)表示拒绝匿名用户,星号(*)表示拒绝所有用户帐户的访问
基本上,这是微软冗长的说法:
- 位置:MyLoginPage.aspx
- 拒绝:匿名
这意味着必须使用表单以外的机制对某人进行身份验证;例如集成(又称Kerberos,Windows)身份验证,或使用基本身份验证。您将无法使用表单身份验证,因为它们将无法到达登录页面进行登录。在用户登录之前,您如何知道用户的角色?我希望在查看页面时使用windows登录来检查他们的角色。这可能吗?是吗这甚至是最好的解决方案?