Windows APIに依存するIIS 7.5で動作するWeb API 2(VB.Net)で構築されたAPIがあり、AngularJSアプリケーションによって照会されます。すべては1年ほどでうまくいっていますが、最近は結婚してから数日前にユーザー名を変更したユーザーがいます。Web API 2 RequestContext.PrincipalはWindows認証で前のユーザー名を返します
通常のWindowsログインプロセスはすべて新しいユーザー名で動作しますが、APIが使用しようとする資格情報は常に古いユーザー名を参照します。
AngularJS:
$http.get($rootScope.urlAPI + 'access/', {
cache: false,
withCredentials: true
}).success
...
ウェブ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が何とか返している彼らの古いユーザー名を直接
QUブラウザからAPIを抹消すると古いユーザー名と同じJSON結果が返されるため、特にAngularJSアプリではなく、ブラウザとAPIの間に問題があるとは思われません。
この問題はIE11 Google Chromeを使用していましたが、ブラウザのキャッシュを消去してCookieを削除しようとしましたが、IISでAPIのWebサイトサービスを再起動してAPIを再ロードしようとしました。
私たちはドメインコントローラが2つしかなく、数日後に同期されているので、彼女のアカウントの属性をスクロールしましたが、古いユーザー名は参照できませんので、私は迷っていますこれはどこから来ていますか:(