4

我正在编写一个自定义角色提供程序,我需要以编程方式访问存储在 web.config 中的授权信息。站点的某些部分只能由某些角色访问。我想知道哪些角色可以访问页面和/或某个角色可以访问哪个页面。

我似乎无法弄清楚这一点。

4

1 回答 1

9

您可以通过 System.Web.Security 命名空间中的 WebConfigurationManager 类访问存储在 web.config 中的任何信息,例如 ConnectionStrings、AppSettings 和其他定义的值。

假设您已将授权部分定义为:

<system.web>
<authorization>
  <allow roles="admin,moderator" />
  <deny users="?" />
</authorization></system.web>

您刚刚创建的部分意味着具有管理员和/或版主角色的用户可以访问其中的页面,并拒绝在没有登录信息的情况下尝试访问的所有人(匿名)。

为此,只需调用 WebConfigurationManager 的 GetSection 方法

AuthorizationSection auth = WebConfigurationManager.GetSection("system.web/authorization") as AuthorizationSection;

AuthorizationSection 类将为您提供 Rules正是您正在寻找的集合。

于 2009-08-06T19:26:18.627 回答