ASP Identity带有外蓝蛋白的新用户



我正在重构一个旧网站以使用OWIN,并使用ASP Identity 2.

的表格和外部登录声明。

我有一个问题,围绕着创建外部登录的新用户的正确方法。

我正在使用MVC脚手架代码,但具有自定义UserStoreUserManagerSignInManager,并且一切都在工作。

在ExternallogIncallback方法中,帐户控件具有评论的情况,可以重定向到外部符合用户时,但是我不确定在哪里可以短路登录逻辑,因此不会引发例外。

var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
switch (result)
{
    case SignInStatus.Success:
        return RedirectToLocal(returnUrl);
    case SignInStatus.LockedOut:
        return View("Lockout");
    case SignInStatus.RequiresVerification:
        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
    case SignInStatus.Failure:
    default:
        // If the user does not have an account, then prompt the user to create an account
        ViewBag.ReturnUrl = returnUrl;
        ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
        return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = loginInfo.Email });
}

SignInManager.ExternalSignInAsync()方法以以下方式流过UserStoreUserManagerSignInManager。在哪里以及如何简化逻辑以获取结果作为故障的最佳方法?

AccountController : ExternalLogin(Provider, returnURL)

我的OWIN中间件

accountController:externalloginCallbackAuthenticationManager返回所有详细信息

usermanager:task findAsync(userLoginInfo)调用USERSTORE:task findAsync(userLoginInfo)UserLoginInfo有提供商和密钥,这是我发现系统中没有用户的地方。无论我返回什么任务,都不会停止流程。

...USERSTORE:锁定和其他MISC的东西 - 即使是空的,也需要用户对象...

signManager:任务签名(用户,持久性,remeber) - 用户对象为空

signManager:task createuseristentityAsync(用户) - 用户对象是空的

用户:任务生成uSERATESERIDENTYASYNC(USERMANAGER MANAGAR)

usermanager:createIdentityAsync(用户,auth类型)用户是空的,auth type =&quot'ofterne cookie;这会抛出无效的异常。

找到解决方案。我可以从usermanager findasync方法返回一个空任务,这将导致失败结果。

 return Task.FromResult<MyUser>(null);

相关内容

  • 没有找到相关文章

最新更新