2017-10-18 78 views
0

我使用Kentor/SampleOwinApplication,我可以成功登录和注销我的Idp。现在我已经在Asp.Net数据库中对撤销的用户进行了一些测试。成功联合登录并返回到ExternalLoginCallback后,SignInManager.ExternalSignInAsync返回LockedOut,然后我登录撤销页面。与Kentor/Owin处理LockedOut状态

问题是我没有登录Asp.Net,但我仍然为我的Idp,所以如果我尝试再次登录,我认为已经签名,我立即重新导向回到我的服务没有有机会尝试与其他用户一起登录。 我知道在锁定状态时我需要从IDP注销,但似乎很难处理Kentor,因为我没有在Asp.net站点上登录!

回答

0

有趣的边界案例!

你应该做的是在ExternalLoginCallback当你发现你被锁定时,你应该通过启动一个以外部标识作为参数的注销来启动联合注销。这会将用户重定向到Idp并使Idp会话无效。

请注意,如果用户已经从相同的Idp登录到其他服务,则可能会产生副作用。那些其他服务也将被注销。