/// <summary> /// 登录 并获取信息 存放到session中 /// </summary> /// <param name="domain"></param> /// <param name="openId"></param> /// <param name="passWord"></param> protected async System.Threading.Tasks.Task <bool> LoginSuccess(string domain, string openId, string passWord) { string info = domain + "|" + openId + "|" + passWord + "|"; var service = new Services.WxUserService(); var tokenValue = await service.GetToken(domain, openId, passWord); if (tokenValue.Contains("invalid_client")) { throw new Comm.YYException.YYException("登录失败" + info + tokenValue + ",请联系管理员"); } //if (tokenValue.Contains("invalid_grant")) //{ // //ModelState.AddModelError("", "登录失败,请联系管理员"); // throw new Comm.YYException.YYException("登录失败"+ info + tokenValue + ",请联系管理员"); //} Session["tokenInfo"] = ""; Session["accessToken"] = ""; Session["refreshToken"] = ""; if (tokenValue.Contains("invalid_grant")) //没有权限 { Session["Binding"] = "0"; } else { Sys.Models.TokenInfo tokenInfo = new Sys.Models.TokenInfo(tokenValue); Session["Binding"] = "1"; Session["tokenInfo"] = tokenValue; Session["accessToken"] = tokenInfo.access_token; Session["refreshToken"] = tokenInfo.refresh_token; } return(true); }
public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false); switch (result) { case SignInStatus.Success: var tokenValue = await Services.LoginService.GetToken(model.Email, model.Password); if (tokenValue.Contains("invalid_grant")) { ModelState.AddModelError("", "登录失败,请联系管理员"); return(View(model)); } Sys.Models.TokenInfo tokenInfo = new Sys.Models.TokenInfo(tokenValue); Session["tokenInfo"] = tokenValue; Session["accessToken"] = tokenInfo.access_token; Session["refreshToken"] = tokenInfo.refresh_token; var userValue = await Services.LoginService.GetMe(tokenInfo.access_token, model.Email); JObject jo = JObject.Parse(userValue); if (Convert.ToBoolean(jo["Error"].ToString())) { ModelState.AddModelError("", jo["Msg"].ToString()); return(View(model)); } Session["loginUser"] = jo["Info"].ToString(); return(RedirectToLocal(returnUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe })); case SignInStatus.Failure: default: ModelState.AddModelError("", "登录失败,用户名密码错误"); return(View(model)); } }