Outlook API使用Office.context.mailbox.getUserIdentityTokenAsync(callback, userContext);
(https://msdn.microsoft.com/en-us/library/office/fp142236.aspx)返回「身份標記」。我試圖從base-64 URL編碼字符串中獲取JSON。如何在JSON中獲取Exchange標識符號?
到目前爲止,我已經嘗試過的代碼樣本從這個網址:https://msdn.microsoft.com/en-us/library/f7f4813a-3b2d-47bb-bf93-71b64620a56b
的Javascript:
Office.context.mailbox.getUserIdentityTokenAsync(function (data) {
$.ajax({
type: "POST",
url: "/api/exchange/createAndValidateIdentityToken",
contentType: 'application/json',
data: JSON.stringify({ userIdentityToken: data.value })
})
.done(function (data) {
console.log(data);
})
.fail(function (data) {
console.log(data);
});
});
C#:
[HttpPost]
public AppIdentityToken CreateAndValidateIdentityToken(JObject data)
{
JToken userIdentityToken = data.GetValue("userIdentityToken");
string rawToken = userIdentityToken.Value<string>();
try
{
AppIdentityToken token = (AppIdentityToken)AuthToken.Parse(rawToken);
token.Validate(new Uri("https://**url**/ews/exchange.asmx"));
return token;
}
catch (TokenValidationException ex)
{
throw new ApplicationException("A client identity token validation error occurred.", ex);
}
}
的AuthToken.Parse
返回AppIdentityToken
充滿了例外,我不'不懂爲什麼:
注1:錯誤是部分在法國:「一個LEVE UNE例外德式」 =「已經提出了類型的異常」。
注2:身份令牌格式解碼時:https://msdn.microsoft.com/en-us/library/fp179838.aspx
如果在調用Validate方法之前訪問令牌成員,則會調用這些異常。如果在調用Validate方法後檢查該標記,會發生什麼情況? – dbugger
當我從'token.Validate'行跳轉時,它進入'catch'行:「發生了客戶端身份令牌驗證錯誤。」 InnerException:「受衆URI驗證失敗,受衆羣體不匹配。」我猜這個URI是錯誤的,那麼他們在尋找什麼URI?文檔上的內容很不清楚。 – Elfayer
這是一個驗證錯誤。看起來像提供的URI和期望的URI不匹配。 – dbugger