我附上了错误的确切印刷品。
应用程序托管在IIS中并使用ADFS身份验证。一个人设法从10人中重现这个错误。它甚至在重新启动浏览器之后每次都会重现,删除缓存和放大器。在她的机器上的饼干。重新启动应用程序池或重新启动机器后,它停止了再现。我打赌IIS应用程序池重启,因为我已经尝试重新启动浏览器并删除cookie,但它没有解决任何问题。
唯一的定制"我们正在做的行为是在SessionSecurityTokenReceived事件中以这种方式滑动令牌:
var token = e.SessionToken;
e.ReissueCookie = true;
e.SessionToken =
new SessionSecurityToken(
token.ClaimsPrincipal,
token.Context,
DateTime.UtcNow, //Start date
DateTime.UtcNow.AddMinutes(30)) //Expiration date
{
IsPersistent = token.IsPersistent,
};
记录IsPersistent,并且它总是被评估为false。这会是问题吗?我不这么认为。从一些谷歌搜索中我发现人们通常在进行令牌滑动时将其设置为true。
另一个搜索说尝试以这种方式创建令牌:
var sam = sender as SessionAuthenticationModule;
e.SessionToken = sam.CreateSessionSecurityToken(
token.ClaimsPrincipal,
token.Context,
DateTime.UtcNow, //Start date
DateTime.UtcNow.AddMinutes(30),//Expiration date
true);
使用"新的SessionSecurityToken创建令牌有什么不同。" vs" sam = sender as SessionAuthenticationModule; sam.CreateSessionSecurityToken" ?
我可以提供其他任何细节。
谢谢