-1

我有一个基于声明的身份验证的应用程序,最近我遇到了一个随机丢失身份验证的问题。应用程序通常从System.Security.Claims.ClaimsIdentity获取它的身份、声明信息,并且它可以很好地授权。由于某种原因,在单击不同的页面后,我失去了身份验证,它似乎正在查看System.Security.Claims.WindowsIdentity并且它以空异常退出,因为现在没有更多的授权信息。我也在使用 IdentityServerV3。我为缺乏具体的技术数据道歉,但想知道是否有人遇到过这个问题。没有具体的时间,因为我首先认为它可能会过期。它发生得非常随机。我已经包括了屏幕抓取:

这是我被授权的时候

这是我被授权的时候

这是 10 秒后

在此处输入图像描述

如果您需要任何进一步的信息,请告诉我并提前感谢!

4

1 回答 1

1

我有类似的问题,随机丢失身份验证,由我记得的三个原因引起,

1) 多线程 - 代码由没有标识上下文的不同线程执行

2) cookie 大小超出浏览器限制 身份验证 cookie 在传回服务器时被分块

3) 托管在多个实例中的身份服务器和配置为将令牌存储在内存中的身份服务器。

关于您的情况,我的直觉可能完全是红鲱鱼,是 1) 10 秒后执行您的代码的线程在不同的身份上下文下,我建议尝试通过多线程首先验证您的代码的任何路径,同时检查可以在输出窗口中找到的 thinktecture 日志,如果您使用的是默认日志记录提供程序,以查看是否有任何可疑之处

希望能帮助到你

于 2015-07-24T07:42:13.813 回答