public Task RemoveSnsInfoAsync(GreenspotUser user) { if (user == null) { throw new ArgumentNullException("user"); } _userSnsInfoRepository.Delete(user.Id); return(Task.FromResult(0)); }
public Task AddSnsInfoAsync(GreenspotUser user, GreenspotUserSnsInfo snsInfo) { if (user == null) { throw new ArgumentNullException("user"); } if (!user.SnsInfos.Values.Any(x => x.SnsName == snsInfo.SnsName && x.InfoKey == snsInfo.InfoKey)) { user.SnsInfos.Add(snsInfo.InfoKey, snsInfo); _userSnsInfoRepository.Insert(user.Id, snsInfo); } return(Task.FromResult(0)); }
public async Task <ActionResult> WeChatMpLoginCallback(string returnUrl) { var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { StallApplication.BizErrorFormat("[MSG]failed to get login info"); return(View("Error")); } // Sign in the user with this external login provider if the user already has a login var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent : false); switch (result) { case SignInStatus.Success: StallApplication.SysInfoFormat(string.Format("[MSG]signIn succeed, redirec to {0}", returnUrl)); return(Redirect(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; GreenspotUser user = new GreenspotUser() { UserName = "" }; var rslt = await UserManager.CreateAsync(loginInfo, user); if (rslt.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(Redirect(returnUrl)); } return(Redirect(returnUrl)); } }
// This is the extension method. // The first parameter takes the "this" modifier // and specifies the type for which the method is defined. public static bool HasSubscribed(this GreenspotUser user) { return(bool.Parse(user.SnsInfos[WeChatClaimTypes.Subscribed].InfoValue)); }