예제 #1
0
        public ActionResult CheckLogin(string username, string password, string verifycode, int autologin)
        {
            ActionResult res       = null;
            LogEntity    logEntity = new LogEntity
            {
                CategoryId     = (int)CategoryType.Login,
                OperateTypeId  = ((int)OperationType.Login).ToString(),
                OperateType    = OperationType.Login.GetEnumDescription(),
                OperateAccount = username,
                OperateUserId  = username,
                OperateTime    = DateTime.Now,
                IPAddress      = NetHelper.Ip,
                IPAddressName  = "",//NetHelper.GetAddressByIP(NetHelper.Ip),
                Browser        = NetHelper.Browser,
                Module         = ConfigHelper.GetValue("SoftName")
            };

            Logger(this.GetType(), "登录验证-CheckLogin", () =>
            {
                #region 验证码验证
                string code        = Md5Helper.Md5(verifycode.ToLower());
                string sessionCode = SessionHelper.GetSession <string>("session_verifycode");
                if (string.IsNullOrEmpty(sessionCode) || code != sessionCode)
                {
                    res = Error("验证码错误,请重新输入");
                }
                #endregion

                #region 账户验证
                else
                {
                    Tuple <UserEntity, JsonObjectStatus> tuple = userBll.CheckLogin(username, password);

                    JsonObjectStatus status = tuple.Item2;
                    UserEntity user         = tuple.Item1;
                    if (status != JsonObjectStatus.Success || user == null)
                    {
                        res = Error(status.GetEnumDescription());
                    }
                    else
                    {
                        string objId = permissionBll.GetObjectString(user.Id);

                        OperatorEntity operators = new OperatorEntity
                        {
                            UserId        = user.Id,
                            Code          = user.EnCode,
                            Account       = user.Account,
                            UserName      = user.RealName ?? user.NickName,
                            Password      = user.Password,
                            Secretkey     = user.Secretkey,
                            CompanyId     = user.OrganizeId,
                            DepartmentId  = user.DepartmentId,
                            IPAddress     = NetHelper.Ip,
                            IPAddressName = "",//NetHelper.GetAddressByIP(NetHelper.Ip),
                            ObjectId      = objId,
                            LoginTime     = DateTime.Now,
                            Token         = DESEncryptHelper.Encrypt(CommonHelper.GetGuid(), user.Secretkey)
                        };

                        //写入当前用户数据权限
                        string ReadAutorize        = authorizeBLL.GetDataAuthor(operators);
                        string ReadAutorizeUserId  = authorizeBLL.GetDataAuthorUserId(operators);
                        string WriteAutorize       = authorizeBLL.GetDataAuthor(operators, true);
                        string WriteAutorizeUserId = authorizeBLL.GetDataAuthorUserId(operators, true);

                        AuthorizeDataModel dataAuthorize = new AuthorizeDataModel
                        {
                            ReadAutorize        = ReadAutorize,
                            ReadAutorizeUserId  = ReadAutorizeUserId,
                            WriteAutorize       = WriteAutorize,
                            WriteAutorizeUserId = WriteAutorizeUserId
                        };
                        operators.DataAuthorize = dataAuthorize;
                        //判断是否系统管理员
                        operators.IsSystem = user.Account == "System";

                        //写入登录信息
                        OperatorProvider.Provider.AddCurrent(operators);

                        //写入日志
                        logEntity.ExecuteResult     = 1;
                        logEntity.ExecuteResultJson = "登录成功";
                        logBll.WriteLog(logEntity);

                        res = Success("登录成功", user, "/Home/AdminDefault");
                    }
                }
                #endregion
            }, e =>
            {
                CookieHelper.DelCookie("__autologin");//清除自动登录
                logEntity.ExecuteResult     = -1;
                logEntity.ExecuteResultJson = e.Message;
                logBll.WriteLog(logEntity);

                res = Error("系统异常:" + e.Message);
            }, () =>
            {
                SessionHelper.RemoveSession("session_verifycode");
            });
            return(res);
        }
예제 #2
0
        public ActionResult CheckLogin(string username, string password, string verifycode, int autologin)
        {
            ActionResult res = null;

            Logger(this.GetType(), "登录验证-CheckLogin", () =>
            {
                #region 验证码验证
                string code        = Md5Helper.Md5(verifycode.ToLower());
                string sessionCode = SessionHelper.GetSession <string>("session_verifycode");
                if (string.IsNullOrEmpty(sessionCode) || code != sessionCode)
                {
                    res = Error("验证码错误,请重新输入");
                }
                #endregion

                #region 账户验证
                else
                {
                    JsonObjectStatus status;
                    UserEntity user = _userBll.CheckLogin(username, password, out status);
                    if (status != JsonObjectStatus.Success || user == null)
                    {
                        res = Error(status.GetEnumDescription());
                    }
                    else
                    {
                        string objId = _permissionBll.GetObjectString(user.UserId);

                        OperatorEntity operators = new OperatorEntity
                        {
                            UserId        = user.UserId,
                            Code          = user.EnCode,
                            Account       = user.Account,
                            UserName      = user.RealName ?? user.NickName,
                            Password      = user.Password,
                            Secretkey     = user.Secretkey,
                            CompanyId     = user.OrganizeId,
                            DepartmentId  = user.DepartmentId,
                            IPAddress     = NetHelper.Ip,
                            IPAddressName = NetHelper.GetAddressByIP(NetHelper.Ip),
                            ObjectId      = objId,
                            LoginTime     = DateTime.Now,
                            Token         = DESEncryptHelper.Encrypt(CommonHelper.GetGuid(), user.Secretkey)
                        };

                        //写入当前用户数据权限
                        AuthorizeDataModel dataAuthorize = new AuthorizeDataModel
                        {
                            ReadAutorize        = _authorizeBll.GetDataAuthor(operators),
                            ReadAutorizeUserId  = _authorizeBll.GetDataAuthorUserId(operators),
                            WriteAutorize       = _authorizeBll.GetDataAuthor(operators, true),
                            WriteAutorizeUserId = _authorizeBll.GetDataAuthorUserId(operators, true)
                        };
                        operators.DataAuthorize = dataAuthorize;
                        //判断是否系统管理员
                        operators.IsSystem = user.Account == "System";

                        //写入登录信息
                        OperatorProvider.Provider.AddCurrent(operators);

                        res = Success("登录成功", user, "/Home/AdminDefault");
                    }
                }
                #endregion
            }, e =>
            {
                res = Error("系统异常:" + e.Message);
            }, () =>
            {
                SessionHelper.RemoveSession("session_verifycode");
            });
            return(res);
        }