запретить страницы в web.config в соответствии с пользователем - PullRequest
0 голосов
/ 15 января 2011

Я использую пользовательское членство в asp.NET, поэтому пользователь - это объект, содержащий членов.Одним из участников пользователя является «IsCompanyAdmin».У меня есть несколько страниц aspx только для администраторов компании.Есть ли какой-нибудь способ запретить пользователям с правами администратора использовать эти страницы с помощью web.config?

Ответы [ 2 ]

1 голос
/ 16 января 2011

Если я правильно понимаю вашу проблему, вам не нужно иметь роль в базе данных.

Что можно сделать, так это в вашем методе GetRolesForUser CustomRoleProvider вернуть строку [], которая будет содержать роли в зависимости от вашего пользователя. Модуль авторизации будет использовать эти роли. Скажем, ваше свойство IsCompanyAdmin = "true", а затем вы добавляете "Admin" в строку [].

Тогда предложенное Джошем определение местоположения должно работать так, как будто у вас есть роль «Администратор» в базе данных.

1 голос
/ 15 января 2011

В ASP.Net стандартная ярмарка для ограничения доступа к страницам в конфигурации осуществляется с помощью элемента Location .

В следующем примере будут ограничены все, кроме пользователей, которые находятся в роли администратора,Однако это предполагает, что у вас настроен RoleProvider .

<location path="RestrictedPage.aspx">
    <system.web>
      <authorization>
        <allow roles="Admin" />
        <deny users="*" />
      </authorization>
    </system.web>
</location>

Есть несколько примеров того, как реализовать свой собственный поставщик ролей, но если вы можетесойдет с рук, тогда я бы использовал встроенный SqlRoleProvider .

...