У меня есть веб-сайт с большой базой пользователей, настроенной с asp.net 2,0 аутентификации форм. Прежде чем пользователь регистрируется на пути, аутентификация форм - это возможный получить имя для входа в систему окон / имя пользователя на машине, которую они используют?
Большое спасибо
Это было бы возможно, только если бы вы использовали Windows Authentication в вашем веб-приложении, а затем только если бы пользователь вошел в систему.
Информация, которую вы ищете, не отправляется в рамках веб-запроса (совершенно верно) и поэтому неизвестна веб-серверу
К сожалению, нет - если пользователь не вошел в систему, он просматривает ее анонимно, и поэтому неизвестен серверу. Идентифицировать их невозможно.
После входа в систему, если вы используете самозванство, используйте WindowsIdentity.GetCurrent().Name
. Однако, для аутентификации форм нет прямого способа запросить у браузера их учетные данные Windows, так как они могут даже не работать под управлением Windows!
Не раньше, чем нет (не с сервера)
В зависимости от типа используемого вами Auth и способа настройки сайта, вы можете заставить их войти в систему с подробной информацией об их окнах
.Это, безусловно, возможно - путем добавления еще одного веб-приложения в вашу систему. Примерно так я это и сделал:
Ваше основное веб-приложение использует аутентификацию с помощью форм. На странице входа в систему с формами любой пользователь, который определен как находящийся в локальной сети (проверьте IP-адрес), перенаправляет его на другое приложение, использующее аутентификацию Windows. В этом втором приложении вы можете определить пользователя (предполагая, что браузер настроен на автоматическую отправку учетных данных в зону, в которой находится ваше приложение), затем установить cookie-файл, который может прочитать ваше первое приложение, и перенаправить пользователя обратно в оригинальное приложение.
Это действительно работает.