Как передать учетные данные пользователя, вошедшего в систему, в веб-службу с помощью встроенной аутентификации Windows из Perl - PullRequest
2 голосов
/ 10 июня 2009

Я испытываю разочарование, пытаясь что-то сделать с Perl, что заняло бы пару строк кода в C #, а именно для вызова веб-службы на сервере Windows, который требует встроенной проверки подлинности Windows.

Наиболее вероятным кандидатом, которого я нашел для успеха, является модуль под названием LWP :: Authen :: Ntlm, но во всех примерах, которые я гуглил, требуется явно указать имя пользователя, пароль и домен. Я не хочу этого делать - я просто хочу, чтобы запрос использовал учетные данные текущего вошедшего в систему пользователя, например, CredentialCache.DefaultCredentials в .NET.

Кто-нибудь из вас, Perl-гуру, когда-либо делал это?

Спасибо.

Ответы [ 5 ]

1 голос
/ 24 июня 2009

Вот идея: запустите процесс iexplore для вызова сценария на сервере, поскольку Internet Explorer использует зарегистрированного пользователя в качестве входа по умолчанию при доступе к серверам в одном домене.

Может быть, вы сможете достичь чего-то, используя OLE с перечисленными здесь модулями Win32 здесь . Может быть, модуль Win32 :: API может помочь.

0 голосов
/ 07 апреля 2010

Я тоже с этим боролся. У меня есть возможное решение с использованием Cntlm http://cntlm.sourceforge.net/, который предоставляет локальный прокси-сервер, который будет проходить проверку подлинности с использованием хэша. Таким образом, вы можете один раз запросить у пользователя пароль, а затем создать и сохранить хэш. Для кого-то было бы предпочтительным создать приложение для Windows, которое будет делать то же самое и использовать CredentialCache.DefaultCredentials и не требовать ввода данных пользователем.

0 голосов
/ 28 июля 2009

Я думаю, что heeen находится на хорошем пути с Win32 :: API, и я подозреваю, что вам нужно будет запустить свой собственный пользовательский агент для управления рукопожатием NTLM с сервером IIS. Это не так уж и плохо, взаимодействие хорошо понято.

Это пахнет чем-то, с чем вам может помочь Самба. Поиски, есть много шума об использовании Samba +! IIS для поддержки интегрированной аутентификации, вам просто нужно другое направление.

0 голосов
/ 14 июня 2009

Веб-сервисы спроектированы так, чтобы быть независимыми от платформы и ОС. Так что, если вы пытаетесь создать NTLM (IWA) из Unix / Perl, я думаю, что это требует изменения вашего механизма аутентификации в соответствии с теми, которые предложены в спецификации WS-Security.

0 голосов
/ 10 июня 2009

Вы пытались передать имя пользователя и пароль в URL.

http://username:password\@$server:8080

...