我正在将“Microsoft Azure AD”集成到我们的Asp.NET Web项目中,所有工作都按照https://azure.microsoft.com/en-us/documentation/articles/active-directory-devquickstarts-webapp-dotnet/中显示的指南正常工作,甚至我将其部署到IIS 8.5。但是,当我将页面保持在Chrome浏览器中一晚并且第二天早上尝试通过刷新再次访问它时,情况会变得糟糕,它会遇到异常:
2>'/'应用程序中的服务器错误。IDX10223:终身验证失败。令牌已过期。 ValidTo:'05 / 19/2016 2016 10:45:59' 当前时间:'05 / 19/2016 21:46:31'。
有人遇到过同样的问题吗?如何刷新令牌?我尝试直接进行Signout并更改了公共地址,但一切都不起作用。请帮忙。
顺便说一下,我做了一些研究,但所有提到的是它已经在“AspNet.Security.OpenIdConnect.Server”中解决,而不是“Microsoft.Owin.Security.OpenIdConnect”。谢谢,
约翰尼
答案 0 :(得分:3)
我遇到了同样的问题,git上有人说它的错误https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/issues/191,但我认为它与你的机器时间有关,因为OpenidConnect OAuth令牌有效1小时。如果您的机器时间设置错误,那么它的行为就像这样。您可以更改尝试测试的时间。请清除您的浏览器cookie,以便框架不使用较旧的cookie。
答案 1 :(得分:3)
就我而言,我的Windows Pro 10(用于登录的设备)的日期/时间设置未自动设置。 将其设置为自动获取日期/时间即可解决此问题。
答案 2 :(得分:1)
在我的情况下,Identity Server的时间早于我使用该服务的机器。设置正确的时间后,您还可以尝试清除浏览器cookie。
答案 3 :(得分:1)
在我们的案例中,这是一个Docker
容器问题。离开PC休眠后,再加上某种Docker
的更新,就等于时间上的Docker
容器堆栈。 Docker
清理并重新启动计算机,对它进行了排序。
答案 4 :(得分:0)
在将Windows时区设置为自动并重新启动系统后,我出现了类似的“ IDX10222”错误。
还必须添加“ Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true;”以便在此处查看日期和时间-令牌尚未生效。 ValidFrom:'[PII被隐藏。有关更多详细信息,请参见{{3)},当前时间:“ [PII隐藏。有关更多详细信息,请参见https://aka.ms/IdentityModel/PII]'。