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

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

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

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

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

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