我有一个在 IIS 7+ 下运行的 ASP.Net Web 表单应用程序当前使用 Windows 身份验证和 URL 授权保护整个应用程序,通过 IIS 在 web.config 中配置。.NET 不关心用户是谁,目前没有配置文件或角色或任何东西。
<system.web>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="AppXUsers" />
<deny users ="?" />
</authorization>
</system.web>
我希望添加一个附加页面(在子文件夹中),该页面可供部分用户访问,因此我将修改 web.config,如下所示:
<location path="mySubFolder">
<system.web>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="AppXPowerUsers" />
<deny users ="?" />
</authorization>
</system.web>
</location>
然后,客户可以自由添加或删除他们认为合适的 AD 组。但是,就目前而言,属于 AppXUsers 组但不在 AppXPowerUsers 组中的用户仍会显示指向 mySubFolder 中页面的链接。当他们单击链接时,他们应该被拒绝访问。
有什么方法可以检测当前用户是否可以访问“mySubFolder”?
我觉得在这个阶段引入 User/RoleManagement 有点矫枉过正——应用程序不需要存储与用户相关的任何信息,它不关心用户是谁,除了“他们是否可以访问这个页面”,目前在 IIS 阶段处理。