Передача учетных данных аутентификации AD через браузер IE в C # Windows Form - PullRequest
3 голосов
/ 06 ноября 2008

У нас есть приложение Windows Form, в котором размещается браузер IE. Наши пользователи запускают приложение и открывают ссылки на документы, хранящиеся в MOSS. Мы пытаемся настроить приложение так, чтобы оно передавало учетные данные служебной учетной записи, чтобы мы могли не предоставлять всем пользователям доступ к сайту MOSS. Мы использовали найденный код здесь , который, кажется, работает нормально, если пользователь не вошел в наш домен. Однако приложение не будет передавать аутентификацию учетной записи службы для любого пользователя, который уже прошел аутентификацию в домене. В этом случае он просто использует учетные данные аутентифицированных пользователей.

Кто-нибудь знает, как мы можем сделать эту работу?

Спасибо!

Jeff

Ответы [ 3 ]

2 голосов
/ 01 декабря 2008

В какой интернет-зоне работает веб-сайт, на который вы указываете? Даже если вы используете свой собственный элемент управления браузером, он все равно будет находиться в некоторой зоне. Определите, в какой зоне он находится, с помощью обычного браузера, чтобы перейти на соответствующий сайт, и определите, в какой зоне он находится.
альтернативный текст http://img219.imageshack.us/img219/7162/internetzonenp8.jpg

Если эта конкретная зона автоматически войдет в систему, учетные данные будут зарегистрированы. Однако если вы не вошли в систему как действительный пользователь домена, то эти учетные данные локальных окон не принимаются, и, похоже, они возвращаются к учетным данным, предоставленным вашим кодом. альтернативный текст http://img230.imageshack.us/img230/407/settingskm3.jpg

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

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

Я надеюсь, что это ответит на некоторые ваши вопросы, но я не думаю, что это ответит на все это. Если есть специальная область, в которой вы хотели бы получить больше информации, и если бы я мог ответить на нее, я был бы рад помочь.

С наилучшими пожеланиями Рихан

0 голосов
/ 28 ноября 2008

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

IE автоматически выполняет вход на сайты доменов, используя тип аутентификации Kerberos (встроенная аутентификация Windows)

Три предложения;

  • Не используйте вместо этого имя WINS сайта MOSS, но IP-адрес (может также работать с именами DNS, например, не http://moss -server , а http://moss -server.domain.com ). это должно привести к тому, что IE не будет автоматически входить на сайт.
  • Изменение модели аутентификации на веб-сервере для использования Basic только (предупреждение безопасности - открытый текст обмен паролями)
  • Отключить параметр «Включить интегрированную Windows» Аутентификация »в веб-браузере. Это сделает доступ к любым сайтам в домене боль ...

Моя рекомендация первая. Используйте другой адрес, чтобы IE считал, что он не обращается к доверенному сайту и поэтому не использует встроенную аутентификацию.

Все можно протестировать с помощью IE вне приложения. Просто запустите IE и введите адрес, который вы используете, на сайт MOSS. Если вас просят ввести пароль, у вас есть решение.

0 голосов
/ 06 ноября 2008

Разве подражание не поможет здесь? Вы можете запустить этот фрагмент кода (форму) под видом пользователя учетной записи службы, о котором вы говорите, и тогда элемент управления браузером должен работать в том же контексте.

следующие ссылки могут помочь;

http://msdn.microsoft.com/en-us/library/b80a7e92.aspx

http://www.buro9.com/blog/2006/10/06/impersonating-a-user-in-c/

...