Задать вопрос
@bRUtality
highload developer

Как прикрутить роли к asp.net?

Есть приложение asp.net работающее в интрасети. Используется система аутентификации Forms
<authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx"  />
</authentication>

Требуется перейти на authentication mode="Windows"
Но мое приложение использует роли для разграничения доступа на те или иные странички. Вопрос в том, как "внешние" логины, взятых из AD, связать с самопальными ролями (собственное хранилище в виде БД для ролей и прочего есть)?
  • Вопрос задан
  • 331 просмотр
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@bRUtality Автор вопроса
highload developer
В общем, ларчик просто открывался. Встроенный мембершип все равно лезет в таблицу роль-юзер, а аккаунт доступен по Profile.UserName и Role.UserInRole().
Вот одна из реализаций, которую я протестировал. Создаем штатными способами все роли + роль, которую присвоим при первом захождении АД юзера на сайт. Я назвал ее guest. На мастер странице добавил код, который присваивает зашедшему юзеру роль guest.
Roles.AddUsersToRole(Profile.UserName, "guest");
При этом создаются записи в таблицах "пользователи" и "пользователь-роль". Т.о. мы получаем внешнего пользователя к себе в базу и его связь с ролью. Остается только назначить роль с нужным уровнем доступа.
Все.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
Ответ прост: написать свой провайдер ролей, который будет брать виндусёвые логины, проверять их по таблице БД и выдавать назначенные роли.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы