У меня есть ASP.NET 3,5 веб-сервиса (старая школа SOAP, не WCF) работа двух серверов, настроенных тождественно в IIS 6.0. Аутентификация/Управление доступом настраивается следующим образом:
В одном из веб-методов я должен получить Идентификационные данные пользователя запроса и проверить это, это находится в определенной группе Active Directory. Так, первая строка кода в веб-методе - это:
var requestUser = HttpContext.Current.Request.LogonUserIdentity.Name;
По некоторым причинам результаты отличаются между этими двумя серверами. Server1 работает как ожидалось, производя domain\UserId
. Однако Server2 производит Server2\IUSR_SERVER2
. Кто-либо испытал это прежде? Я действительно находил этот вопрос, но я вполне уверен, он не применяется здесь как клиент, и оба сервера - все в том же домене.
На основе ответа Heinzi я добавил следующее к
раздел в обоих web.config файлы:
Теперь, Server1 ведет себя то же, как в, это ведет себя, поскольку я хочу это к. Однако Server2 бросает 401.2: Несанкционированная ошибка:
Ошибка сервера в '/' Приложение.
Доступ запрещен. Описание: ошибка произошла при доступе к ресурсам, требуемым служить этому запросу. Сервер не может быть настроен для доступа к требуемому URL.
Сообщение об ошибке 401.2.: Несанкционированный: Вход в систему перестал работать из-за конфигурации сервера. Проверьте, что у Вас есть разрешение просмотреть этот каталог или страницу на основе учетных данных, которые Вы предоставили, и методы аутентификации включили на веб-сервере. Свяжитесь с администратором веб-сервера для дополнительной помощи.
Информация о версии: Microsoft.NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3053
В web.config на Server2 есть: режим аутентификации="Windows"?
Поскольку IUSR_*
является анонимным пользователем по умолчанию и анонимный доступ отключен в IIS, звучит так, как будто анонимный доступ включен в вашем web.config. Пожалуйста, убедитесь, что раздел авторизации
в вашем web.config выглядит так:
<authorization>
<deny users="?" /> <!-- Reject anonymous users -->
<allow users="*" /> <!-- Accept all other users (or replace * with a list of users) -->
</authorization>
К сожалению, я никогда не добрался до корня этой проблемы. Мы оказались переезда на новые серверы и со свежей конфигурацией IIS на обоих, эта проблема ушла. Я подозреваю, что в этом, возможно, имел что связать с тем, как никто настроен на сервере, так как это был виртуальный сервер с несколькими ними. Но я все еще не знаю наверняка. Еще раз спасибо на Heinzi и Conssumutah для их помощи.