我在Windows 8.1商店應用中實現了Azure Active Directory。Azure Active Directory單點登錄檢測到多個令牌問題
時,應用程序打開它打開了AAD登錄彈出和用戶將進入電子郵件和密碼,然後登錄到該應用程序,對於我使用下面的代碼它工作正常第一次。
AADLoginFirstTime()
{
AuthenticationContext ac = new AuthenticationContext(App.authority);
AuthenticationResult ar = await ac.AcquireTokenAsync(App.resourceURI, App.clientID, (Uri)null,PromptBehavior.Always);
JObject payload = new JObject();
payload["access_token"] = ar.AccessToken;
user = await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, payload);
//saving user token into vault
credential = new PasswordCredential(provider,
user.UserId, user.MobileServiceAuthenticationToken);
vault.Add(credential);
}
從第二次起,我使用調用的代碼
AADLoginSecondTime()
{
AuthenticationContext ac = new AuthenticationContext(App.authority);
AuthenticationResult ar = await ac.AcquireTokenAsync(App.resourceURI, App.clientID, (Uri)null);
JObject payload = new JObject();
payload["access_token"] = ar.AccessToken;
user = await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, payload);
}
的差值低於線是第二次起LoginAsync方法沒有提示行爲。
這對單個用戶來說工作正常。
用於註銷,我只是瀏覽網頁登錄屏幕和呼叫AADLoginFirstTime()方法來顯示登錄彈出。
當它提示登錄彈出如果我使用另一個用戶AAD憑證並登錄到應用程序,從下次打開應用程序,現在調用AADLoginSecondTime()方法,然後該應用程序將引發一個稱爲移動服務無效令牌的異常。
AuthenticationResult ar = await ac.AcquireTokenAsync(App.resourceURI, App.clientID, (Uri)null);
該方法返回一個空的標記。
這是造成因爲以前沒有用戶從應用完全loggedout的?如果是我怎樣才能完全註銷以前的用戶?