IdentityServer3中重复SignInCookie及同ID SignInMessages问题排查
IdentityServer3中出现重复ID的SignInMessages问题排查分析
我在团队使用IdentityServer3做身份验证的项目中,碰到了一个棘手的问题:系统中出现了两条ID完全相同的SignInMessages。经过对IdentityServer3源码和业务代码的详细排查,我们推测问题的根源如下:
- 身份验证流程启动时,会在
CreateSignInRequest方法中创建并生成一条SignInMessage - 当IdentityServer3调用
AuthenticateLocalAsync完成后,由于我们的场景里IsPartialSignIn被设置为false,代码会执行signInMessageCookie.Clear(signInMessageId);语句,意图清理对应的SignInMessage关联Cookie - 核心问题出在这个
Clear方法的实现上:它并没有执行预期的Cookie删除操作,而是实际调用了Cookie.Append操作——这就导致原本应该被清理的Cookie没有被移除,进而引发了重复ID的SignInMessages问题
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

