Как создать пользователей и сохранить их в базе данных и связать их с логинами аутентификации Windows
Что я хочу:
Приложение интрасети, в котором только пользователи, вошедшие в систему, могут видеть приложение... и роль администратора и участника.
1:
Я создал веб-приложение MVC 5.0 (для интранета).
У него есть домашний вид с домашним контроллером... У меня есть вид администратора с административным контроллером.
На главной странице есть ссылка (ну, это еще не ссылка, а какая-либо другая) на нее, которая является условной:
@if(User.IsInRole("Admin")){
<li>Admin</li> @*Will be link to admin controller action*@
}
Я хотел бы создать 1 пользователя с ролью "Администратор" и позволить ему / ей затем создавать новых пользователей (назначая им логины аутентификации Windows) с именем пользователя и новой ролью "Администратор" или "Участник"...
2:
Далее я хочу сделать так, чтобы пользователи с ролью администратора могли делать все, что указано в моей базе данных SQL, с ролями, которые им подходят.
Например,
Джон имеет доступ только на чтение и запись к некоторым таблицам ("Член"), но Джек и Джилл имеют доступ на чтение и запись ко всем таблицам ("Администратор").
Джон не может видеть ссылку администратора на главном экране, но Джилл может. Действие контроллера Admin заблокировано, чтобы разрешить пользователям только роль "Администратор" в качестве роли, а не "Участник"...
Основной вопрос (с учетом 1 и 2):
Я понимаю, что здесь есть два набора аутентификации, один для аутентификации Windows для самого приложения, а затем для базы данных, но у меня странное чувство, что они должны быть каким-то образом связаны. Я прочитал довольно много материала, но постоянно путаюсь с ним, исходя из набора навыков проверки подлинности веб-формы. Это мое первое приложение для внутренней сети... немного запутался.
Что я сделал до сих пор:
В настоящее время у меня включена проверка подлинности Windows, и я могу успешно использовать приложение и вызвать:
@User.Identity.Name
чтобы узнать кто я...
Примечания стороны:
Я хотел бы понять, в каком контексте должны использоваться параметры Авторизации, например.
[Authorize(Roles="Admin")]