Wie übergeben Sie die Windows-Authentifizierung-Anmeldeinformationen vom client zum Web-service-API
In meinem unternehmerischen Umfeld, ich habe IIS7.5 hosting-Web-API-service und eine separate website, die Aufrufe in diesen Dienst über die RestSharp Bibliothek. Beide sind derzeit konfiguriert mit Windows-Authentifizierung.
Wenn ich navigieren Sie entweder mit einem browser, ich bin aufgefordert, meinen windows-Anmeldeinformationen, und funktioniert alles Super... ich bekomme die web-Seiten, die ich will und der REST-Dienst spuckt meine Daten. Der Teil, den ich bin kämpfen, um herauszufinden, ist, wie ein einzelnes Anmeldeinformationen für die Authentifizierung sowohl. Ich kann nicht herausfinden, wie Sie entweder übergeben Sie die Website Anmeldeinformationen der service (ich habe versucht nachzuahmen aber es funktionierte nicht), oder manuell Eingabe von Benutzername/Passwort und dann bestätigen Sie mit "Windows".
Hilfe für ein noob?
InformationsquelleAutor Jim Last | 2014-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Identitätswechsel verwenden, auf Ihrer Webseite und die API ist auf dem gleichen server ausgeführt, sollte es funktionieren.
http://msdn.microsoft.com/en-us/library/aa292118(v=vs. 71).aspx
Jedoch, wenn Sie bewegen würde, die API mit einem anderen server von der Website diese nicht mehr arbeiten. Ein zwei-server-setup erfordert die Kerberos-delegation.
Ich möchte Sie warnen, dass die Kerberos-Delegierung ist nicht trivial. Ich habe noch zu finden, eine einzige IT-Abteilung, die weiß, wie es zu tun oder sind bereit es zu versuchen. Ein workaround ist die Verwendung eines service-Kontos ein, das Zugriff auf alles, was die Seite kann beim Aufruf der API-server-zu-server. Es ist nicht die schönste Lösung, und es erfordert, dass Sie die check-in-code, dass der angemeldete Benutzer auf der Website nicht mehr Informationen aus der API, als er oder Sie soll. Aber es ist zumindest eine funktionierende option, die nicht erfordert eine Menge von aufdringlichen änderungen an der IT-Umgebung.
Der Inhalt zu diesem link "ist bereits im Ruhestand".
InformationsquelleAutor Anders Bornholm
Einstellungen für die web-API
Windows Authentication
Einstellungen für die web-Anwendung
Windows Authentication
<identity impersonate="true" />
im<system.web>
des web.configFügen Sie Folgendes in die web.config:
Aktivieren
Windows Authentication
undASP.NET Impersonation
innerhalb von IISKönnen Sie den folgenden code verwenden, um POST-Daten zu web-API (und auch offensichtlich)
HINWEIS: Wenn Sie noch immer ein 401-Fehler, müssen Sie möglicherweise verwenden Sie eine IP-Adresse statt einer regulären domain-Namen für die URL (z.B.: 155.100.100.10 statt mycompany.com)
InformationsquelleAutor Hafiz Attaullah Khwaja