У меня есть сайт ASP.NET MVC 5, который использует проверку подлинности с помощью форм с помощью настраиваемого класса членства.
Процедура входа на мой сайт:
Анонимный посетитель пытается перейти на мой сайт. Ему это разрешено, но он перенаправляется на мою страницу входа.
Посетитель вводит свое имя пользователя и пароль, настроенные в активном каталоге моей сети (AD).
- Код .NET AD проверяет учетные данные, а затем отвечает файлом cookie для посетителя, содержащим основную информацию (его имя, адрес электронной почты и т. Д.).
- Посетитель перенаправляется на домашнюю страницу. Он прошел аутентификацию, но на самом деле сайт работает как удостоверение пула приложений, а не как удостоверение пользователя AD вошедшего в систему.
Моя проблема: в №4, как мне сделать так, чтобы удостоверение моего сайта выполнялось как удостоверение AD аутентифицированного пользователя, а не удостоверение пула приложений сайта? Мне нужно это сделать, потому что для определенной службы, которую использует мое приложение, требуется идентификатор пользователя AD, а не идентификатор пула приложений.
Возможное решение: в пункте 2 я получаю имя пользователя и пароль посетителя и использую их для проверки подлинности того, что он является действительным идентификатором AD. Я мог бы зашифровать и сохранить пароль пользователя, а затем всякий раз, когда мне нужно было использовать службу, требующую идентификатора пользователя AD, я мог бы просто создать новый NetworkCredential из его имени пользователя и пароля. Однако мне не нравится это решение, потому что я бы предпочел не хранить пароль пользователя, если я могу этого избежать.
Спасибо за любую помощь!
(System.Security.Principal.WindowsIdentity)User.Identity
, и вы поймете, о чем я. - person CodingYoshi   schedule 19.04.2019var currentWindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
, который возвращает MyADDomain \ MyAppPoolIdentityName. - person David Alan Condit   schedule 19.04.2019