7

Я пытаюсь установить проверку подлинности 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. Проблема, которую они описали, была точно такой же. Решение также сработало. Единственная проблема, которая по-прежнему сохраняется, заключается в том, что с моей машины разработки я по-прежнему автоматически зарегистрирован как неправильный пользователь. К счастью, все клиентские компьютеры входят в систему как текущие пользователи.

+1

Похоже, у вас есть настройка олицетворения в IIS. –

+1

Как вы получаете имя пользователя, в котором вы регистрируетесь? Есть ли у вас какие-либо ссылки на неправильного пользователя в вашем коде где угодно? Когда другие пользователи получают приглашение для имени пользователя и пароля, могут ли они войти в систему или отклонить их авторизацию? И очевидный вопрос, все ли пользователи в одном домене? ;-) – Chris

+0

Они могут входить в систему как сами, а затем также правильное имя пользователя отображается в частичном пользователе. У меня нет ссылок на неправильного пользователя, и я не настраиваю имитацию в web.config. Я получаю имя пользователя из 'User.Identity.Name' –

ответ

0

Я googled немного больше и нашел это: http://forums.iis.net/t/1167087.aspx. Перезагрузка сервера действительно решила проблему. Печально то, что мы до сих пор не знаем, что вызывало его ...