Классический Запрос ASP. ServerVariables (“LOGON_USER”), возвращая неверное имя пользователя

Классический Запрос ASP. ServerVariables ("LOGON_USER") возвращает неверное имя пользователя. Вот сценарий:

У меня есть две учетных записи на домене, один для администрирования и один для нормальной эксплуатации. Администраторская учетная запись установлена как администратор (в Группе администраторов) на сервере, где сценарий ASP работает. Сервер является Windows 2003 рабочий IIS 6.0.

Я вхожу в систему своей машины с моим обычным пользователем, считают и переходят к странице, и она возвращает мое администраторское имя пользователя учетной записи. Почему это происходит? Это хорошо работает для других.

<%
Response.Write "LOGON_USER: " & Request.ServerVariables("LOGON_USER") & "<br>"
Response.Write "REMOTE_USER: " & Request.ServerVariables("REMOTE_USER") & "<br>"
Response.Write "AUTH_USER: " & Request.ServerVariables("AUTH_USER") & "<br>"
Response.Write "<br>"
'Show all server variables
For Each Item In Request.ServerVariables
Response.Write Item & " = " & Request.ServerVariables(Item) & "<br>"
Next
%>

Анонимный доступ выключен, и аутентификация Windows идет.

Спасибо,

Jari

9
задан AnonJr 24 February 2010 в 11:51
поделиться

3 ответа

IIS, вероятно, работает под управлением пользователь Admin, и вы получаете это имя. Пожалуйста, проверьте это на своей стороне.

0
ответ дан 3 November 2019 в 03:46
поделиться

Я не могу объяснить, что вы видите, на основе предоставленной на данный момент информации. Я могу сказать вам, что учетная запись, под которой работает пул приложений, не имеет значения.

Классический ASP всегда олицетворяет пользователя либо анонимную учетную запись пользователя, либо пользователя, связанного с подключением, по которому поступает запрос. В этом может быть ключ к разгадке вашей проблемы.

Аутентификация в ASP выполняется на уровне соединения, после того как соединение было аутентифицировано, оно связывается с пользователем. Соединение может оставаться открытым для клиентов и других нисходящих HTTP-устройств. Все последующие запросы, поступающие по соединению, не нуждаются в повторной аутентификации, текущий пользователь, связанный с соединением, используется для предоставления пользовательского контекста, олицетворяемого потоком, обрабатывающим запрос.

Я видел, как промежуточные устройства или отладочные прокси (например, fiddler) поддерживали соединения и повторно использовали их для последующего запроса от множества клиентов. В этой ситуации возможно, чтобы клиент работал в контексте одного пользователя, чтобы запрос обрабатывался веб-сервером в контексте другого пользователя. Противный!

Я видел то же самое на старых серверах Citrix Terminal. HTTP-соединения использовались несколькими клиентами, работающими на сервере терминалов, что приводило к перекрестному контексту безопасности. Ой!

Другой вариант - отказ в доступе к ресурсу на сервере для текущего пользователя во внутренней сети. В браузере отображается диалоговое окно входа в сеть, и пользователь входит в систему с правами администратора. На время сеанса браузер теперь использует учетные данные администратора для доступа к другим ресурсам на том же сервере, даже если это сделает текущий вошедший в систему пользователь.

2
ответ дан 3 November 2019 в 03:46
поделиться

Согласно документации MSDN по этой переменной:

Учетная запись Windows, которую пользователь выдает себя за другое лицо при подключении к вашему веб-серверу. Используйте REMOTE_USER, UNMAPPED_REMOTE_USER или AUTH_USER для просмотра необработанного имени пользователя, содержащегося в заголовке запроса. Единственный раз, когда LOGON_USER имеет значение, отличное от этих других переменных, - это если у вас установлен фильтр аутентификации.

Возможно, у вас есть фильтр аутентификации.

1
ответ дан 3 November 2019 в 03:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: