丢失身份验证详细信息 (ClaimsIdentity)
Losing Authentication Details (ClaimsIdentity)
我有一个基于声明的身份验证的应用程序,最近我遇到了一个问题,我随机丢失了身份验证。该应用程序通常从 System.Security.Claims.ClaimsIdentity 获取它的身份、声明信息,并且授权良好。出于某种原因,在点击不同的页面后,我失去了身份验证,它似乎正在寻找 System.Security.Claims.WindowsIdentity 并且它以空异常退出,因为现在没有更多的授权信息。我也在使用 IdentityServerV3。对于缺乏具体的技术数据,我深表歉意,但想知道是否有人遇到过这个问题。没有特定的时间执行此操作,因为我最初认为它可能会过期。它非常随机地发生。我已经包含了屏幕截图:
这是我获得授权的时候
这是 10 秒后
如果您需要任何进一步的信息,请告诉我并提前致谢!
我遇到过随机丢失身份验证的类似问题,原因是我记得的三个原因,
1) 多线程 - 代码由没有身份上下文的不同线程执行
2) cookie 大小超过浏览器限制身份验证 cookie 在传回服务器时被分块
3) 身份服务器托管在多个实例中,身份服务器配置为将令牌存储在内存中。
关于你的情况,我的直觉可能完全是转移注意力,是 1) 10 秒后执行你的代码的线程在不同的身份上下文下,我建议尝试验证你的代码的任何路径可以先通过多线程,同时检查可以在输出中找到的 thinktecture 日志 window 如果您使用的是默认日志记录提供程序,看看是否有任何可疑的东西
希望对您有所帮助
我有一个基于声明的身份验证的应用程序,最近我遇到了一个问题,我随机丢失了身份验证。该应用程序通常从 System.Security.Claims.ClaimsIdentity 获取它的身份、声明信息,并且授权良好。出于某种原因,在点击不同的页面后,我失去了身份验证,它似乎正在寻找 System.Security.Claims.WindowsIdentity 并且它以空异常退出,因为现在没有更多的授权信息。我也在使用 IdentityServerV3。对于缺乏具体的技术数据,我深表歉意,但想知道是否有人遇到过这个问题。没有特定的时间执行此操作,因为我最初认为它可能会过期。它非常随机地发生。我已经包含了屏幕截图:
这是我获得授权的时候
这是 10 秒后
如果您需要任何进一步的信息,请告诉我并提前致谢!
我遇到过随机丢失身份验证的类似问题,原因是我记得的三个原因,
1) 多线程 - 代码由没有身份上下文的不同线程执行
2) cookie 大小超过浏览器限制身份验证 cookie 在传回服务器时被分块
3) 身份服务器托管在多个实例中,身份服务器配置为将令牌存储在内存中。
关于你的情况,我的直觉可能完全是转移注意力,是 1) 10 秒后执行你的代码的线程在不同的身份上下文下,我建议尝试验证你的代码的任何路径可以先通过多线程,同时检查可以在输出中找到的 thinktecture 日志 window 如果您使用的是默认日志记录提供程序,看看是否有任何可疑的东西
希望对您有所帮助