public ActionResult Login(LoginViewModel model, string returnUrl) { //判断实体是否校验通过 if (ModelState.IsValid) { var loginStatus = new LoginUserStatus() { IsLogin = false, Message = "用户或密码错误", }; //登录处理 var userManage = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new EntityDbContext())); var user = userManage.Find(model.UserName, model.PassWord); if (user != null) { var roleName = ""; var context = new EntityDbContext(); foreach (var role in user.Roles) { roleName += (context.Roles.Find(role.RoleId) as ApplicationRole).DisplayName + ","; } loginStatus.IsLogin = true; loginStatus.Message = "登录成功!用户的角色:" + roleName; loginStatus.GotoController = "home"; loginStatus.GotoAction = "index"; //把登录状态保存到会话 Session["loginStatus"] = loginStatus; var loginUserSessionModel = new LoginUserSessionModel() { User = user, Person = user.Person, RoleName = roleName, }; //把登录成功后用户信息保存到会话 Session["LoginUserSessionModel"] = loginUserSessionModel; //identity登录处理,创建aspnet的登录令牌Token var identity = userManage.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); return(Redirect(returnUrl)); } } return(View()); }
public ActionResult Login(LoginViewModel model, string returnUrl) { //判断实体是否校验通过 if (ModelState.IsValid) { var loginStatus = new LoginUserStatus() { IsLogin = false, Message = "用户或密码错误" }; //登陆处理 var userManage = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new EntityDbContext())); var user = userManage.Find(model.Username, model.PassWord); if (user != null) { var roleName = ""; var context = new EntityDbContext(); foreach (var role in user.Roles) { roleName += (context.Roles.Find(role.RoleId) as ApplicationRole).DisplayName + ","; } loginStatus.IsLogin = true; loginStatus.Message = "登陆成功!用户的角色:" + roleName; loginStatus.GotoController = "home"; loginStatus.GotoAction = "index"; //把登陆状态保存到会话 Session["loginStatus"] = loginStatus; var loginUserSessionModel = new LoginUserSessionModel() { User = user, Person = user.Person, Rolename = roleName }; //把登陆成功后用户信息保存到会话 Session["loginUserSessionModel"] = loginUserSessionModel; var identity = userManage.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); return(Redirect(returnUrl)); } else { if (string.IsNullOrEmpty(returnUrl)) { ViewBag.ReturnUrl = Url.Action("index", "home"); } else { ViewBag.ReturnUrl = returnUrl; } ViewBag.LoginUserStatus = loginStatus; return(View()); } } if (string.IsNullOrEmpty(returnUrl)) { ViewBag.ReturnUrl = Url.Action("index", "home"); } else { ViewBag.ReturnUrl = returnUrl; } return(View()); }