Доступ к информации об авторизации в web.config - PullRequest
4 голосов
/ 06 августа 2009

Я пишу пользовательский поставщик ролей, и мне нужен программный доступ к информации авторизации, хранящейся в web.config. Определенный раздел сайта доступен только для определенных ролей. Я хотел бы узнать, какие роли могут получить доступ к странице и / или к какой странице может получить доступ определенная роль.

Я не могу понять это.

1 Ответ

9 голосов
/ 06 августа 2009

Вы можете получить доступ к любой информации, хранящейся, например, ConnectionStrings, AppSettings и другие определенные значения в web.config, с помощью класса WebConfigurationManager в пространстве имен System.Web.Security.

Допустим, вы определили раздел авторизации как:

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

Раздел, который вы только что создали, означает, что пользователи, имеющие роли admin и / или moderator , могут получить доступ к страницам внутри и запретить каждому (анонимному), кто пытается получить доступ без информации для входа.

Для этого просто вызовите метод GetSection WebConfigurationManager как

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

Класс AuthorizationSection даст вам Rules коллекция, которая именно то, что вы ищете.

...