public ActionResult FirstLogin(FirstLoginRequest request) { var flag = false; var msg = string.Empty; //只能修改当前登录用户的密码 //新密码不能和原密码一样 //修改成功需要重新生成cookie if (CurrentUserInfo == null || CurrentUserInfo.Id != request.Id) { msg = "未知错误,重置密码失败"; return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet)); } if (CurrentUserInfo.UserPwd.Equals(request.NewPwd.To32bitMD5())) { msg = "新密码不能和默认密码一样!"; return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet)); } using (var factory = new ChannelFactory <IWebFxsCommonService>("*")) { var client = factory.CreateChannel(); var result = client.InitUserPwd(request); if (result.ReturnCode == ReturnCodeType.Success && result.Content == true) { //更新cookie FormsIdentity id = (FormsIdentity)HttpContext.User.Identity; FormsAuthenticationTicket ticketOld = id.Ticket; CurrentUserInfo.UserPwd = request.NewPwd.To32bitMD5(); CurrentUserInfo.IsChangePwd = true; FormsAuthentication.SignOut(); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket ( 2, CurrentUserInfo.UserId, DateTime.Now, ticketOld.Expiration, false, CurrentUserInfo.ToJson() ); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)); if (ticket.Expiration != new DateTime(9999, 12, 31)) { cookie.Expires = ticketOld.Expiration; } HttpContext.Response.Cookies.Add(cookie); flag = true; msg = "重置密码成功"; } else { msg = "重置密码失败!"; return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet)); } } return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet)); }