2015-11-02 42 views
0

要與AzureAD驗證我把folling代碼在控制檯應用程序Azure AD身份驗證會記住選定的帳戶。如何制止這種

private static async Task<string> GetAuthTokenAsync(string tendent,string AppIdUri , string ClientID) 
    { 
     /* 
     <add key="ida:Audience" value="https://mehler.ws/ToDoWebApi" /> 
<add key="ida:ClientID" value="f0e91727-3edd-4b00-9630-591166a74e4b" /> 
     */ 
     var authContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", tendent)); 
     AuthenticationResult result = authContext.AcquireToken(AppIdUri, ClientID , new Uri(Settings.Default.WebApiReplyAdress)); 

     return result.CreateAuthorizationHeader(); 
    } 

方法AcquireToken顯示一個屏幕,我被要求輸入我的憑據。

我不小心選擇我登錄帳戶與Windows 10.現在屏幕沒有任何更多的應用程序使用我的Windows 10的賬戶自動顯示。有誰知道如何解決這個問題,讓屏幕再次出現?

回答

1

令牌被緩存在您的應用程序,以減輕複雜性。您將需要清除令牌緩存如果你希望用戶重新登錄...通常你會建立一個註銷功能。令牌緩存

的更多信息:http://www.cloudidentity.com/blog/2013/10/01/getting-acquainted-with-adals-token-cache/

如何註銷:

authContext.TokenCache.Clear(); 
string requestUrl = "https://login.microsoftonline.com/{0}/oauth2/logout?post_logout_redirect_uri={1}"; 
Task.Run(async() => 
{ 
    var client = new HttpClient(); 
    var request = new HttpRequestMessage(HttpMethod.Get, requestUrl); 
    var response = await client.SendAsync(request); 
}); 
  • {0} - 您的Azure的活動目錄的完全合格的名字,例如: yourad.onmicrosoft.com或租戶ID。
  • {1} - 您的應用程序,其中一個用戶必須重定向 回註銷完成後的URL。這應該是正確的URL 編碼。
0

一個簡單的方法是傳遞給AcquireToken PromptBehavior.Always,有一個重載。這將導致ADAL忽略緩存並會要求一個乾淨的提示

0

服務我發現了一個很簡單的解決辦法自己一旦清除緩存。 在Internet Explorer/Edge中刪除Cookies ;-)

無論如何,要感謝熱門解決方案,實施適當的註銷代碼並強制提示登錄。

相關問題