我有一個VB.NET VS2012項目,我正在使用Azure AD成功驗證OneDrive文件夾。我想能夠緩存憑據,所以我不需要每次都手動登錄。 SDK暗示了緩存憑據的可能性,但我對新的OneDrive SDK不是很熟悉,因此尋求一些關於如何使用ADALCredentialCache對象來存儲我的登錄信息的幫助。在我可以做到這一點之前,我需要解決如何使用額外參數連接到Azure AD。Azure AD身份驗證OneDrive for Business API
我使用以下使用發現服務的語句和參數成功連接。
var oneDriveClient = BusinessClientExtensions.GetActiveDirectoryClient(clientId, returnUrl);
我相信我需要使用OneDrive商務API端點和資源ID用下面的命令連接,因爲我那麼應該能夠使用CredentialCache參數。
var oneDriveClient = BusinessClientExtensions.GetActiveDirectoryClient(
clientId,
returnUrl,
oneDriveApiEndpoint,
serviceResourceId)
我的問題是,我不知道什麼是serviceResourceId引用。任何人都可以擺脫燈嗎?
這是第一部分,下一部分是如何使用CredentialCache參數來存儲和保存登錄憑證。
任何幫助將不勝感激,我已經花了幾天拖網互聯網的答案,但迄今還沒有發現任何具體的足夠提供我需要的答案。
乾杯
格雷格Ĵ
編輯:
好了,現在我用所需命令驗證使用憑據緩存我要麼是錯誤的或我有什麼錯誤的想法確實。我想要做的是後續對應用程序的調用自動進行身份驗證。這裏是我的代碼...
'Microsoft.OneDrive.Sdk.AdalCredentialCache
Dim credentialCache As AdalCredentialCache
If IO.File.Exists(strCacheFile) Then
Dim rcb As Byte() = IO.File.ReadAllBytes(strCacheFile)
credentialCache = New AdalCredentialCache(rcb)
Else
credentialCache = New AdalCredentialCache
End If
odc = BusinessClientExtensions.GetActiveDirectoryClient(azure_client_id, redirurl, sResource, endpoint_Url, credentialCache)
Await odc.AuthenticateAsync()
Dim ccb As Byte() = credentialCache.GetCacheBlob()
IO.File.WriteAllBytes(strCacheFile, ccb)
第一遍提示我輸入我的憑據,以便做到這一點和我聯繫。緩存被寫入一個文件。在隨後的調用中,我從文件中獲取緩存信息並將其傳遞到憑證緩存變量,但仍然提示我登錄。憑證緩存的長度爲3582.
任何幫助,將不勝感激。
問候
格雷格Ĵ
非常好,謝謝。但是我仍然遇到了Credential Cache的問題,請參閱上面的Post中的其他信息 –