Есть ли способ получить зарегистрированного пользователя из веб-приложения vb.net? То есть, если кто-то вошел в систему как "foo" / "bar" на своей локальной машине, заходит на сайт, мне нужен код, чтобы получить "foo" / "bar". Это для сквозного прохождения в нашей интрасети, где все используют один и тот же Active Directory.
По сути, мне нужно собрать имя пользователя вошедшего в систему пользователя и сравнить его с нашим экземпляром ActiveDirectory. Если это не помогает, мне нужно проверить переменные запроса и проверить их (эта часть довольно проста). Затем, если это не удается, мне нужно показать экран входа в систему (у меня также есть ручка для этого).
Я уже сталкивался и отбросил пару решений для части, с которой у меня возникли проблемы:
- request.serverVariables ("LOGON_USER") - это работает, только если у вас отключен анонимный доступ в IIS, и он должен быть включен для использования проверки подлинности с помощью форм (которую я использую).
- http://www.thescarms.com/dotnet/IsInRole.aspx - По некоторым причинам это решение не работает. Я подозреваю, что проблема в строке AppDomain.CurrentDomain.SetPrincipalPolicy (Principal.PrincipalPolicy.WindowsPrincipal), но смысл этой строки до сих пор скрыт, и я не могу понять, что на самом деле пытается сделать.