Exemplo n.º 1
0
        public ActionResult LogOn(LogonModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                #region 验证码验证
                if (HasVCode)
                {
                    if (!string.Equals(model.ValidateCode, Session["__VCode"]))
                    {
                        ModelState.AddModelError("ValidateCode", "验证码错误!");
                        return(View(model));
                    }
                }
                #endregion

                UserService     us   = new UserService();
                MBR.Models.User user = us.Login(model.UserName, model.Password);
                if (user != null)
                {
                    if (model.RememberMe)
                    {
                        //remerber me
                        HttpCookie Cookie = Request.Cookies[RememberMeKey];
                        if (Cookie == null)
                        {
                            Cookie = new HttpCookie(RememberMeKey);
                            Cookie[RememberMeKey] = model.RememberMe ? "1" : "0";
                            Cookie[UserNameKey]   = model.UserName;
                            //Cookie[PasswordKey] = MES.Core.Encrypt.MD5(model.Password);
                            Cookie[PasswordKey] = model.Password;
                            Cookie.Expires      = DateTime.Now.AddMonths(1);
                        }
                        else
                        {
                        }
                        Response.SetCookie(Cookie);
                    }

                    #region 权限相关
                    List <Module> MenuList = new List <Module>();

                    if (user.IsAdmin)
                    {
                        MenuList = us.GetAllMenuList();
                    }
                    else
                    {
                        MenuList = us.GetUserMenuList(user.UserID);
                    }
                    #endregion

                    #region 角色相关
                    List <Role> RoleList = new List <Role>();
                    RoleList = us.GetUserRoleList(user.UserID);
                    Role Role = RoleList.FirstOrDefault();
                    #endregion

                    #region 生成菜单
                    ModuleHelper mh       = new ModuleHelper(MenuList);
                    string       MenuHTML = mh.GetModuleListHTML();
                    #endregion

                    #region  会话
                    System.Web.HttpContext.Current.Session[Constants.SESSION_USERID]          = user;
                    System.Web.HttpContext.Current.Session[Constants.SESSION_USERMODULE]      = MenuList;
                    System.Web.HttpContext.Current.Session[Constants.SESSION_USERMODULE_HTML] = MenuHTML;
                    #endregion

                    return(RedirectToLocal(returnUrl));
                }
            }

            ModelState.AddModelError("", "用户名或密码不正确。");
            return(View(model));
        }