2009-10-19 1 views
2

Я создаю веб-приложение для интрасети в магазине IE, и я ищу, чтобы получить имя пользователя входа в систему без подсказки для комбинации имени пользователя и пароля. Это легко, пока приложение не будет помещено на веб-сервер. Кажется, что каждая комбинация, с которой я пытаюсь перейти сюда, приводит либо к пустой строке, либо к запросам для входа в систему.Вход в Windows с компьютера пользователя через веб-приложение интрасети БЕЗ запроса пользователя/пароля

Я определил:

<authentication mode="Windows"/> 
    <identity impersonate="true"/> 

И я пытаюсь эти варианты:

Response.Write("HttpContext: " & HttpContext.Current.User.Identity.Name & " \n") 
Response.Write("Windows Identity: " & WindowsIdentity.GetCurrent.Name & " \n") 
Response.Write("Thread: " & Thread.CurrentPrincipal.Identity.Name & " \n") 
Response.Write(Request.ServerVariables("LOGON_USER")) 
Response.Write(User.Identity.Name) 

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

Всякий раз, когда я переключаю свой IIS на использование встроенной проверки подлинности Windows, он запрашивает у меня имя пользователя/пароль. Почему это? Как я могу остановить его?

Пример того, что я хочу (если это не ясно), является

ДОМЕН/USERNAME или HOME/ЧАРЛИ

ответ

3

Убедитесь, что сервер (ы), на которых размещено ваше приложение, находятся в зоне интрасети в настройках безопасности IE; по умолчанию IE не автоматически передает учетные данные для проверки подлинности Windows на сайты в других зонах. Вам также может потребоваться добавить имя хоста вашего сайта в зону Надежные узлы.

Если ваш сайт является чем-то вроде intranet.mydomain.com, и ваши пользователи проходят проверку подлинности на сервере Active Directory для mydomain.com, это произойдет автоматически; в противном случае вам нужно будет изменить настройки IE или разместить свое приложение на сервере, который является членом домена Active Directory.

2

Олицетворение и делегирование - сложное зверь. В вашем случае вам необходимо использовать Интегрированную проверку подлинности для своего веб-сайта.

Смотрите эту article on MSDN about impersonation and delegation для получения дополнительной информации

+0

Интегрированная аутентификация заставляет запрашивать имя пользователя/пароль, нет? – Mark

+0

Зависит от конфигурации браузера/сети. См. Ответ Дилана Битти для получения дополнительной информации –

0

Также убедитесь, что в IE, параметр «Включить интегрированную проверку подлинности Windows» включена.

+0

в IE? Или IIS? Это указано в нижней части моего описания, или я что-то пропустил – Mark

+0

В IE ... если этот параметр выключен, вы будете получать подсказки для своих учетных данных независимо. Это еще одна вещь, о которой нужно убедиться. :) – Jonas

0

В основном убедитесь, что браузер IE пользователей в вашем домене будет аутентифицировать пользователя, не запрашивая их. Это проблема настройки браузера клиента.

+0

Что значит проблема с настройкой браузера клиента? В браузере клиента не запрашивается их имя пользователя и пароль. Это приложение и его настройки. Я не уверен, что вы имеете в виду. – Mark

+0

Браузер запрашивает у пользователя аутентификацию, а не автоматическую регистрацию. Как утверждают другие, убедитесь, что включена функция «Включить встроенную проверку подлинности Windows» – ctrlShiftBryan

Смежные вопросы