0

Ich habe eine API mit Web API 2 (VB.Net) erstellt, die auf IIS 7.5 ausgeführt wird, die auf Windows-Authentifizierung basiert und von einer AngularJS-App abgefragt wird. Alles hat gut für ein Jahr oder so funktioniert, aber wir haben jetzt einen Benutzer, dass wir ihren Benutzernamen vor ein paar Tagen geändert haben, als sie kürzlich geheiratet haben.Web API 2 RequestContext.Principal Zurückgeben des vorherigen Benutzernamens mit Windows-Authentifizierung

Alle normalen Windows-Login-Prozesse funktionieren mit dem neuen Benutzernamen, aber die Anmeldeinformationen, die die API zu verwenden versucht, beziehen sich immer auf den alten Benutzernamen.

AngularJS:

$http.get($rootScope.urlAPI + 'access/', {  
    cache: false, 
    withCredentials: true 
}).success 
... 

Web API 2:

<HttpGet> 
<Route("api/access")> 
<ResponseType(GetType(UserAccessDTO))> 
<NoCachePolicy> 
<Authorize> _ 
Function GetStaffAccessForApp() As UserAccessDTO 
    Dim objUser As System.Security.Principal.WindowsPrincipal = RequestContext.Principal 
    Dim strUsername As String = objUser.Identity.Name 
    ' strUsername is somehow returning their old username 
... 

strUsername irgendwie ihre alten Benutzernamen

Direkt Rückkehr qu Das Ermitteln der API aus dem Browser gibt das gleiche JSON-Ergebnis mit dem alten Benutzernamen zurück. Daher glaube ich nicht, dass das Problem speziell mit der AngularJS-Anwendung zu tun hat ...

Dieses Problem tritt bei beiden IE11 auf und Google Chrome und ich haben versucht, den Browser-Cache zu löschen, Cookies gelöscht und auch versucht, den Website-Dienst der API in IIS neu zu starten, um die API neu zu laden.

Wir haben nur 2 Domänencontroller und es ist ein paar Tage gewesen, also sind sie definitiv synchronisiert und ich habe durch die Attribute ihres Kontos gescrollt, kann aber keinen Hinweis auf ihren alten Benutzernamen finden, also bin ich ratlos woher kommt das :(

Antwort

0

Für jeden anderen mit ähnlichen Problem scheint es nur nach einem Neustart der Server behoben zu haben.Wir führten regelmäßige monatliche Wartung, die progressiven Neustart aller Server beinhaltet. Irgendwo zwischen dem Neustart der Domäne Controller, Datenbank-Server und API-Server hat das Problem für den Benutzer heute Morgen gelöst

Ein bisschen enttäuschend wir konnten nicht genau feststellen, wo es war ... aber wahrscheinlich irgendwo zwischengespeichert.