2012-08-23 13 views
24

Próbuję uzyskać dostęp do usługi, która jest za uwierzytelniania systemu Windows. Myślałem, że mogę przekazać dane uwierzytelniające w taki sam sposób, w jaki przekazywane są poświadczenia uwierzytelniania HTTP Basic, ale to nie działa. Kiedy wykonuję następujące czynności, pojawia się błąd 401 i jestem absolutnie pewien, że hasło jest poprawne.Dlaczego usługa cURL nie działa z uwierzytelnianiem systemu Windows w IIS7?

curl --user username:password http://example.com 

Dlaczego to nie działa?

Odpowiedz

39

Jeśli używasz uwierzytelniania systemu Windows, należy użyć NTLM:

curl --ntlm --user username:password http://example.com 
+3

A jeśli nie wprowadzisz hasła, linia poleceń poprosi o to. – Neal

+3

Zobacz moją odpowiedź, w jaki sposób korzystać z bieżącego zalogowanego użytkownika do swoich żądań –

17

Można również zostawić pola nazwę użytkownika i hasło puste (-u :) i curl użyje swoich bieżących referencji ze swojego środowiska:

curl --ntlm -u : http://example.com 

pokazanej w docs (w -u, --user)

Jeśli używasz binarnego curl z obsługą Windows SSPI i wykonujesz uwierzytelnianie Kerberos V5, Negocjuj, NTLM lub Digest, wówczas możesz powiedzieć curl do wybrać nazwę użytkownika i hasło ze swojego środowiska, podając pojedynczy dwukropek z tą opcją: " -u: ".

Kerberos-Enabled Binaries

0

Chcę tylko dodać, że pozwolenie może obejmować kilka przekierowań i uwierzytelnianie NTLM mogą być wymagane dla drugiego lub kolejnych wniosków, ale nie pierwszy. W takim przypadku odpowiedzi tutaj nie będą działać.

Chodzi o to, że CURL wysyła poświadczenia za pomocą pierwszego żądania , podczas gdy na przykład może być potrzebny na drugi. Aby przekazać referencje we wszystkich żądaniach, użyj opcji --location-trusted.

Z dokumentacji CURL (-L option):

Gdy używane jest uwierzytelnianie, curl tylko wysyła swoje poświadczenia do pierwotnego gospodarza. Jeśli przekierowanie przeniesie się do innego hosta, nie będzie w stanie przechwycić użytkownika + hasła. Zobacz także --location-trusted, jak to zmienić.

Ta ważna uwaga pomogła mi autoryzować na stronie mojej firmy. Mam nadzieję, że pomaga komuś innemu.

Powiązane problemy