Я пытаюсь установить проверку подлинности Windows в своем веб-приложении .NET 4.0 MVC3, поэтому пользователи интрасети в компании могут войти в систему, не запрашивая ее.Проверка подлинности Windows не работает
В web.config у меня есть:
<authentication mode="Windows" />
<authorization>
<deny users = "?" />
</authorization>
В IIS я отключил анонимный доступ для всего веб-приложения и оставили только проверка подлинности Windows, проверено. Я использую IIS 6.0 на Windows 2003.
Теперь, когда я получить доступ к сайту из USER \ КОМПЬЮТЕР я зарегистрирован без запроса, но как неправильный пользователь (не сам, а учетная запись администратора сервера что веб-приложение работает).
Когда я обращаюсь к сайту с помощью USER \ SOMESERVER, я зарегистрировался как ПОЛЬЗОВАТЕЛИ, как и ожидалось. Все остальные люди, пытающиеся получить доступ к моему приложению со своих компьютеров, получают приглашение для имени пользователя и пароля (они могут войти, когда они предоставляют действительные учетные данные, хотя). Это особенно странно, потому что все они интегрировали проверку подлинности Windows в IE, а * .domain.intra добавляется на сайты интрасети.
Есть ли у кого-нибудь идеи, что происходит? Как я могу заставить его работать, поэтому пользователи регистрируются как сами, не будучи запрошенными?
EDIT: пул веб-приложение работает как NETWORK SERVICE, так что я не понимаю, почему я вошел в как неправильный пользователь от моей машины развития ...
EDIT2: так как я используйте NETWORK SERVICE в качестве идентификатора для пула приложений, я выполнил следующие шаги: http://support.microsoft.com/kb/871179. Но она по-прежнему не работает ...
Все пользователи и машины принадлежат к одной и той же области
EDIT3: Я нашел это: http://forums.iis.net/t/1167087.aspx. Проблема, которую они описали, была точно такой же. Решение также сработало. Единственная проблема, которая по-прежнему сохраняется, заключается в том, что с моей машины разработки я по-прежнему автоматически зарегистрирован как неправильный пользователь. К счастью, все клиентские компьютеры входят в систему как текущие пользователи.
Похоже, у вас есть настройка олицетворения в IIS. –
Как вы получаете имя пользователя, в котором вы регистрируетесь? Есть ли у вас какие-либо ссылки на неправильного пользователя в вашем коде где угодно? Когда другие пользователи получают приглашение для имени пользователя и пароля, могут ли они войти в систему или отклонить их авторизацию? И очевидный вопрос, все ли пользователи в одном домене? ;-) – Chris
Они могут входить в систему как сами, а затем также правильное имя пользователя отображается в частичном пользователе. У меня нет ссылок на неправильного пользователя, и я не настраиваю имитацию в web.config. Я получаю имя пользователя из 'User.Identity.Name' –