簡體   English   中英

Sharepoint Provider托管的應用程序:無效的JWT令牌。 令牌已過期

[英]Sharepoint Provider Hosted App: Invalid JWT Token. The token is expired

當我在應用程序中工作時,隨機出現以下錯誤:

無效的JWT令牌。 令牌已過期。

[SecurityTokenExpiredException:無效的JWT令牌。 令牌已過期。]
Microsoft.IdentityModel.S2S.Tokens.JsonWebSecurityTokenHandler.ValidateLifetime(JsonWebSecurityToken令牌)+296
Microsoft.IdentityModel.S2S.Tokens.JsonWebSecurityTokenHandler.ValidateTokenCore(SecurityToken token,Boolean isActorToken)+162
C:\\ APP \\ TokenHelper.cs:120中的EventsWeb.TokenHelper.ReadAndValidateContextToken(String contextTokenString,String appHostName)
C:\\ APP \\ TokenHelper.cs:465中的EventsWeb.TokenHelper.GetClientContextWithContextToken(String targetUrl,String contextTokenString,String appHostUrl)
C:\\ APP \\ Pages \\ User \\ tmpl \\ index.aspx.cs:90中的EventsWeb.Pages.User.tmpl.index.GetHostWebClientContext()
C:\\ APP \\ Pages \\ User \\ tmpl \\ index.aspx.cs中的EventsWeb.Pages.User.tmpl.index.OnPreRender(EventArgs e):69
System.Web.UI.Control.PreRenderRecursiveInternal()+107
System.Web.UI.Page.ProcessRequestMain(布爾includeStagesBeforeAsyncPoint,布爾includeStagesAfterAsyncPoint)+7675

除了重新啟動Internet Explorer來解決此問題外,沒有其他方法。 我在某些應用程序中有此功能。 ClientId和ClientSecret有效,否則重新啟動IE將無法解決此問題。

出現此消息的時間不同。 有時在1小時后有時在5小時后...

我不知道為什么令牌會由於在此應用程序中工作而變得無效。 但這不是用戶友好的...

有什么想法嗎?

謝謝

以下兩種情況可能導致令牌過期:

  1. 用戶與您的外接程序具有長時間運行的會話,其中,外接程序在啟動后許多小時(當前超過12個)調用SharePoint。
  2. 外接程序的設計使用戶可以安排外接程序在會話結束后的某個時間訪問SharePoint。

您可以使用刷新令牌從代碼中的ACS獲取另一個訪問令牌。刷新令牌可持續數月,可以保存在cookie或服務器端存儲中。 嘗試使用SharePointContext幫助程序類,如果該訪問令牌自動無效,則它可以續訂訪問令牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM