public virtual async Task <IdentityUser> CreateAsync(UserInfoModel userInfoModel, string loginProvider, string providerKey) { var identityUser = new IdentityUser(_guidGenerator.Create(), await GenerateUserNameAsync(userInfoModel), await GenerateEmailAsync(userInfoModel), _currentTenant.Id); CheckIdentityResult(await _identityUserManager.CreateAsync(identityUser)); CheckIdentityResult(await _identityUserManager.AddDefaultRolesAsync(identityUser)); CheckIdentityResult(await _identityUserManager.AddLoginAsync(identityUser, new UserLoginInfo(loginProvider, providerKey, "微信用户"))); return(identityUser); }
public virtual async Task <IdentityUser> CreateAsync(string loginProvider, string providerKey) { await _identityOptions.SetAsync(); var identityUser = new IdentityUser(_guidGenerator.Create(), await GenerateUserNameAsync(), await GenerateEmailAsync(), _currentTenant.Id); (await _identityUserManager.CreateAsync(identityUser)).CheckErrors(); (await _identityUserManager.AddDefaultRolesAsync(identityUser)).CheckErrors(); (await _identityUserManager.AddLoginAsync(identityUser, new UserLoginInfo(loginProvider, providerKey, WeChatManagementCommonConsts.WeChatUserLoginInfoDisplayName))).CheckErrors(); return(identityUser); }
public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Manage")); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return(View("ExternalLoginFailure")); } var user = new IdentityUser { UserName = model.Email, Email = model.Email, Audit = new Audit(default(Guid)) }; var result = await UserManager.CreateAsync(user); if (result.Succeeded) { result = await UserManager.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToLocal(returnUrl)); } } AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return(View(model)); }