Можно ли получить имя для входа в Windows с сайта, на котором выполняется проверка подлинности с помощью asp.net? - PullRequest
5 голосов
/ 07 января 2010

У меня есть веб-сайт с большой базой пользователей, настроенный на аутентификацию форм asp.net 2.0. Перед тем, как пользователь войдет в систему с помощью проверки подлинности с помощью форм, можно ли получить имя пользователя Windows / имя учетной записи пользователя на машине, которую они используют?

Большое спасибо

Ответы [ 5 ]

4 голосов
/ 09 января 2010

Это, безусловно, возможно - добавив еще одно веб-приложение в вашу систему. Вот примерно как я это сделал:

Ваше основное веб-приложение использует проверку подлинности с помощью форм. На странице входа в формы любой пользователь, который определен в локальной сети (проверьте IP-адрес), перенаправляет его в другое приложение, использующее проверку подлинности Windows. Во втором приложении вы можете определить пользователя (при условии, что браузер настроен на автоматическую отправку учетных данных в зону, в которой находится ваше приложение), затем установить cookie, который может прочитать ваше первое приложение, и перенаправить пользователя обратно в исходное приложение. .

Это работает.

1 голос
/ 07 января 2010

К сожалению, нет - если пользователь не вошел в систему, он просматривает анонимно и поэтому неизвестен серверу. Их невозможно идентифицировать.

После входа в систему, если вы используете олицетворение, используйте WindowsIdentity.GetCurrent().Name. Тем не менее, для проверки подлинности форм нет прямого способа запросить у браузера свои учетные данные Windows, поскольку они могут даже не работать под Windows!

1 голос
/ 07 января 2010

Это возможно только в том случае, если вы используете проверку подлинности Windows в своем веб-приложении и только в том случае, если пользователь вошел в систему.
Тип информации, которую вы запрашиваете, не отправляется как часть веб-запроса (совершенно правильно) и поэтому неизвестен веб-серверу.

0 голосов
/ 15 марта 2012

См. Смешивание форм и безопасность Windows в ASP.NET на MSDN от Microsoft .

Основное различие с ответом @TheObjectGuy состоит в том, что вместо использования 2 веб-сайтов все это делается на одном веб-сайте путем настройки IIS для использования встроенной проверки подлинности Windows только на «единой» странице (WinLogin.aspx).

0 голосов
/ 07 января 2010

Не ДО, нет (не с сервера).

Тем не менее, в зависимости от типа используемой аутентификации и способа настройки сайта, вы МОЖЕТЕ заставить их войти в систему, указав сведения об их окнах.

...