public virtual ActionResult Login(LoginViewModel model)
{
if (!ModelState.IsValid)
return View(model);
var user = model.AsUser();
var userLoginStatus = _userService.ValidateUser(user.UserName, user.Password);
switch (userLoginStatus)
{
case UserLoginStatus.Success:
user =
_userService.GetAll()
.FirstOrDefault(
n =>
n.UserName == user.UserName || n.AccountEmail == user.UserName ||
n.AccountMobile == user.UserName);
break;
case UserLoginStatus.IsNotExist:
TempData["StatusMessageData"] = "账号不存在!";
break;
case UserLoginStatus.InvalidCredentials:
TempData["StatusMessageData"] = "帐号或密码错误,请重新输入!";
break;
case UserLoginStatus.NotActivated:
TempData["StatusMessageData"] = "账号未激活!";
break;
case UserLoginStatus.Banned:
TempData["StatusMessageData"] = "账号被封禁!";
break;
case UserLoginStatus.UnknownError:
TempData["StatusMessageData"] = "未知错误,请重试!";
break;
default:
TempData["StatusMessageData"] = "未知错误,请重试!";
break;
}
if (userLoginStatus != UserLoginStatus.Success) return View(model);
FormsAuthentication.SignOut();
var adminCookie = new HttpCookie("ChiakiCookie" + user.Id) {Value = UserPasswordHelper.MD5(true.ToString())};
if (!string.IsNullOrEmpty(FormsAuthentication.CookieDomain))
adminCookie.Domain = FormsAuthentication.CookieDomain;
adminCookie.HttpOnly = true;
Response.Cookies.Add(adminCookie);
FormsAuthentication.SetAuthCookie(user.UserName, model.RememberMe);
if (string.IsNullOrWhiteSpace(model.ReturnUrl))
{
return RedirectToAction(MVC.Channel.Home());
}
return Redirect(model.ReturnUrl);
}