我在asp.NET中使用自定义用户成员资格,因此用户是包含成员的对象。用户的一个成员是“IsCompanyAdmin”。 我只为公司管理员提供了一些aspx页面。 有没有办法阻止这些页面来自非管理员用户使用web.config?
答案 0 :(得分:1)
在ASP.Net中,限制访问配置中页面的标准公平是通过Location element。
以下示例将限制除Admin用户角色以外的任何人。但是,这假定您已配置RoleProvider。
<location path="RestrictedPage.aspx">
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
several examples如何实现您自己的自定义角色提供程序,但如果您可以使用它,那么我会使用内置的SqlRoleProvider。
答案 1 :(得分:1)
如果我正确理解您的问题,您不必在数据库中拥有角色。
可以在CustomRoleProvider中执行的操作GetRolesForUser方法返回一个字符串[],该字符串将包含取决于您的用户的角色。授权模块将使用这些角色。所以说你的属性IsCompanyAdmin =“true”然后你将“Admin”添加到字符串[]。
然后,Josh提供的位置建议应该像在数据库中具有“管理员”角色一样工作。