繁体   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