我对ExternalLoginCallback
方法有一个奇怪的问题。我正在日志中记录一些信息,有趣的是Email
是正确的,但是userId
是不正确的,它属于先前记录的另一个用户。
即一些UserA
已登录到系统,现在UserB
希望在another
窗口中登录系统。我期望在新窗口UserB
中将登录并覆盖cookie,因此,如果我刷新第一个窗口,它将显示UserB
,但不知何故,在第二个窗口中,它显示{{1 }}。
代码如下:
UserA
编辑
我想我应该添加更多的说明。正在从第三方-public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
EventLogManager.LogWarning(loginInfo.Email);
var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: true);
switch (result)
{
case SignInStatus.Success:
{
var userId = SignInManager.AuthenticationManager.AuthenticationResponseGrant.Identity.GetUserId();
EventLogManager.LogWarning(userId);
...
处调用某些操作。看起来像:
Shopify