コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }