2016-06-29 16 views
1

Wir haben eine Webanwendung mit angularjs und web api entwickelt. Die Anwendung wird in IIS 8.5 bereitgestellt. Die Benutzer befinden sich in der AD-Domäne, unsere Site wird in der lokalen Intranetzone hinzugefügt und auch die Option für die automatische Anmeldung nur in der Intranetzone ausgewählt.Nicht autorisierter Fehler: Negotiate Token kommt anstelle des Bearer Tokens im IE

Wir verwenden Web Api Token basierte Authentifizierung mit OWIN in unserer Anwendung. Daher haben wir alle anderen IIS-Authentifizierungsmethoden außer der anonymen Authentifizierung deaktiviert. Das Token wird auf der Serverseite generiert, während es sich in der Anwendung anmeldet und dieses Token wird zurück an die Client-Seite gesendet. Wir speichern dieses Token in sessionStorage und fügen es im Header der HTTP-Anfrage wie "Authorization: Bearer auth_token" an.

Aber in einigen Zeiten, meistens, wenn wir mehr als 1 Minute warten, konnten wir sehen, dass "Authorization: Negotiate some_token" unsere API-Aufrufe sendet. Der Server antwortet also mit einem nicht autorisierten 401-Fehler.

Jemand in demselben erfahren? Vielen Dank im Voraus

Antwort

1

Wir konnten dieses Problem vermeiden, indem document.execCommand Anwendung ('ClearAuthenticationCache', false); in unserer Datei app.js.

Durch die Aktivierung einer anonymen Authentifizierung auf Rool-Ebene wird auch unser Problem gelöst.