当我在我的应用中工作时,我随机收到以下错误:
无效的JWT令牌。令牌已过期。
[SecurityTokenExpiredException:无效的JWT令牌。令牌是 过期]
Microsoft.IdentityModel.S2S.Tokens.JsonWebSecurityTokenHandler.ValidateLifetime(JsonWebSecurityToken 令牌)+296
Microsoft.IdentityModel.S2S.Tokens.JsonWebSecurityTokenHandler.ValidateTokenCore(SecurityToken token,Boolean isActorToken)+162
EventsWeb.TokenHelper.ReadAndValidateContextToken(字符串 C:\ APP \ TokenHelper.cs中的contextTokenString,String appHostName:120
EventsWeb.TokenHelper.GetClientContextWithContextToken(字符串 targetUrl,String contextTokenString,String appHostUrl)in C:\ APP \ TokenHelper.cs:465个
EventsWeb.Pages.User.tmpl.index.GetHostWebClientContext()in C:\ APP \页面\用户\ TMPL \ index.aspx.cs:90
EventsWeb.Pages.User.tmpl.index.OnPreRender(EventArgs e)in C:\ APP \网页\用户\ TMPL \ index.aspx.cs:69
System.Web.UI.Control.PreRenderRecursiveInternal()+ 107 7 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 7675
除了重新启动Internet Explorer以解决此问题之外,别无他法。 我在某些应用程序中有这个。 ClientId和ClientSecret有效,否则重启IE无法解决此问题。
此消息发生的时间不同。有时在1小时后有时会在5 ...
之后由于在此应用中工作,我不知道为什么令牌无效。但那不是用户友好的......
对此有何想法?
由于
答案 0 :(得分:0)
以下两种情况可能导致令牌过期:
您可以使用刷新令牌在代码中从ACS获取另一个访问令牌。刷新令牌可持续几个月,可以保存在cookie或服务器端存储中。尝试使用SharePointContext帮助程序类,如果访问令牌自动无效,它可以续订。