我無法獲得OAuth憑據與Office 365中的EWS一起使用。在高級別上,我正在編寫SharePoint 2013應用程序,並試圖訪問Exchange中的用戶郵箱數據。通過替換硬編碼的用戶名和密碼的OAuth代碼,我確實驗證了我的EWS代碼是「正確的」,並且它完美地工作。OAuth身份驗證到EWS
我使用下面的代碼獲取令牌,但是當我嘗試訪問用戶的收件箱時,我收到了401。爲了簡潔起見,我將其留下,但我在訪問收件箱之前將令牌傳遞給新的OAuthCredentials對象。
string acsUrl = "https://accounts.accesscontrol.windows.net/";
using (WebClient exchangeTokenClient = new WebClient())
{
exchangeTokenClient.BaseAddress = acsUrl;
NameValueCollection requestParams = new NameValueCollection();
requestParams.Add("grant_type", "client_credentials");
requestParams.Add("client_id", "<clientid>@<realm>");
requestParams.Add("client_secret", "<client secret>");
requestParams.Add("resource", "00000002-0000-0ff1-ce00-000000000000/[email protected]<realm>");
exchangeTokenClient.Headers.Add("Authorization", "Bearer " + ((SharePointAcsContext)spContext).UserAccessTokenForSPAppWeb);
byte[] responseBytes = exchangeTokenClient.UploadValues("<realm>/tokens/OAuth/2", "POST", requestParams);
string response = Encoding.UTF8.GetString(responseBytes);
}
,我認爲這個的越多,我就越想知道,如果我的「應用程序」需要在Exchange服務器上的權利,如果這是401的根本原因是什麼。
有沒有人真的這樣做?我覺得應該有可能,但我似乎無法找到關於這個過程的大量文件。
感謝
喬