webforms如果用户可以从web.config允许的角色访问目录,则启用链接

时间:2014-06-26 22:12:17

标签: webforms web-config

我有一个Web表单应用程序,它具有位置路径安全性,这很好。

我有一个指向主页上路径的链接,但是如果它们没有文件夹的安全性,我想让它在后面的代码中不可见。

我尝试了一些例如:

System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(string.Format("{0}/{1}",HttpRuntime.AppDomainAppPath, adminFolder));

并且它返回true,因为我有访问权限我认为这是由于.NET处理安全问题。

我考虑过将安全组添加到密钥中,只是检查用户是否处于其中一个角色中,但似乎无法找到如何将密钥添加到允许的角色。

这是我的网络配置部分,其中显示了可以访问该文件夹的roles1:

<location path="App_Admin">
    <system.web>
      <authorization>
        <allow roles="role1,role2,role3,role4"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

任何帮助都是最好的方法来实现这一点。

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用SiteMap和安全节点。你试过吗? http://msdn.microsoft.com/en-us/library/ms178429(v=vs.90).aspx。阅读这篇文章。当您看到“创建站点地图”和“启用安全修整”时,他们会谈到根据您的角色切换可见性。