2010-08-16 89 views
1

里面一个web.config文件,你可以控制这样的用户/角色授权:测试System.Web.Authorization从代码

<location path="MyPage.aspx"> 
    <system.web> 
    <authorization> 
     <allow users="User1"/> 
    </authorization> 
    </system.web> 
</location> 

一个asp.net菜单会自动过滤掉那些未经授权的网页对于当前用户,但如何检查我的代码是否具有正确的权限?

我想禁用或隐藏他们无权访问的链接。

回答

0

有没有内置的方法来测试权限,例如,您在使用检索当前标识:

HttpContext.Current.User.Identity.Name 

...和测试这种对各自的标准。更好的方法可能是将角色分配和使用这种方法来测试权限集:

HttpContext.Current.User.IsInRole("Managers") 

您还可以通过编程访问授权部:

System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath); 
AuthorizationSection asection; 
asection = config.GetSection("system.web/authorization") as AuthorizationSection; 

...但你需要实现一种针对特定资源需求测试这些规则的手段。