2016-10-13 122 views
1

我正在使用控制檯應用程序探索Active Directory身份驗證庫(ADAL)。據說一旦使用oauth檢索標記,檢索到的標記將被緩存爲相同的資源名稱,並且之前已登錄。雖然這在Win8.1 Native應用程序中正常工作,但我無法設法使其與控制檯應用程序一起工作。Azure Active Directory令牌緩存C#控制檯應用程序

下面是我使用來獲取令牌代碼:

AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/{tenantGUID}/", false); 
var result = authContext.AcquireToken(APPResourceName, clientGUID, redirectUri, PromptBehavior.Auto); 

按說PromptBehavior.Auto應該只有當沒有這樣的令牌在Azure緩存提示用戶,和我說這個作品完美地在Win8.1本機應用程序。此外,我注意到當Native Win8.1(桌面UI版本)和控制檯應用程序(移動UI版本)提示時,提示界面(登錄UI)有點不同,這是正常的嗎?

任何人都可以請任何人指出爲什麼它不能在一個正常的控制檯應用程序中工作?

回答

0

Tokencache僅存在於.net應用程序的內存中,因爲沒有已知的默認寫入位置。高速緩存提供委託掛鉤讓您讀取和寫入數據到您選擇的存儲。 在win 8.1本地應用程序中,我假設你指的是商店應用程序,緩存被保存在應用程序的存儲中,該存儲被沙盒化並受到其他進程的保護。

0

據我所知,令牌存儲在本地/會話存儲(Web瀏覽器)中,控制檯應用程序無法以這種方式存儲令牌(本質上是當然的)。也許有一個解決方法或類似的東西。微軟的UWP可以依賴很多技術,比如JS,如果這是你的情況,它會使用類似技術的瀏覽器來保存你的令牌。

相關問題