Exemple #1
0
 /// <summary>
 ///设置cookie的域
 /// </summary>
 private static void SetCookieDomain(HttpCookie cookie)
 {
     if (HttpContext.Current == null || !(HttpContext.Current.Request.Url.Host != "localhost"))
     {
         return;
     }
     else
     {
         cookie.Domain = (string)GlobalStaticParam.GetByCode("Domain");
     }
 }
 /// <summary>
 /// 设置域
 /// </summary>
 /// <param name="cookie"></param>
 private static void SetCookieDomain(CookieOptions cookie)
 {
     if (GlobalHttpContext.Current == null || GlobalHttpContext.Current.Request.Host.Host == "localhost")
     {
         return;
     }
     else
     {
         cookie.Domain = (string)GlobalStaticParam.GetByCode("Domain");
     }
 }
Exemple #3
0
        /// <summary>
        /// 写入用户令牌Cookie
        /// </summary>
        public static void WriteUserTokenCookie(string loginName)
        {
            string   securityKey      = GetSecurityKey();
            int      loginExpiresTime = Convert.ToInt32(GlobalStaticParam.GetByCode("LoginStateTime"));
            DateTime expirationTime   = DateTime.Now.AddHours(loginExpiresTime);
            //创建用户令牌Cookie值
            string value  = CreateUserTokenCookieValue(loginName, securityKey, expirationTime);
            var    cookie = new HttpCookie(userGGNTokenCookie, value)
            {
                Expires = expirationTime
            };

            //设置域
            SetCookieDomain(cookie);
            HttpContext.Current.Response.Cookies.Set(cookie);
        }
        /// <summary>
        /// 写入用户令牌Cookie
        /// </summary>
        public static void WriteUserTokenCookie(string loginName)
        {
            string   securityKey      = GetSecurityKey();
            int      loginExpiresTime = Convert.ToInt32(GlobalStaticParam.GetByCode("LoginStateTime"));
            DateTime expirationTime   = DateTime.Now.AddHours(loginExpiresTime);
            //创建用户令牌Cookie值
            string value = CreateUserTokenCookieValue(loginName, securityKey, expirationTime);

            //设置域,默认没有
            var domianCookieOptions = new CookieOptions {
                Expires = expirationTime, IsEssential = false
            };

            SetCookieDomain(domianCookieOptions);

            //添加cookie
            GlobalHttpContext.Current.Response.Cookies.Append(userCMPTokenCookie, value, domianCookieOptions);
        }
Exemple #5
0
        public OperateStatus CheckLogin(BaseUser User)
        {
            OperateStatus op = new OperateStatus {
                IsSuccessful = false, Message = "初始异常!"
            };
            var aa = 999;
            var bb = "111111";
            var cc = DEncrypt.Get32_MD5Lower(bb, null);
            var dd = DEncrypt.Get32_MD5Lower(cc + aa, null);

            try
            {
                //取得静态数据--登录失效时间
                int LoginStateTime = int.Parse(GlobalStaticParam.GetByCode("LoginStateTime").ToString());

                #region 用户名密码验证
                //根据用户名查询数据
                var queryuser = activeContext.Org_User.FirstOrDefault(p => p.Id == User.Id || p.LoginName == User.LoginName ||
                                                                      (!string.IsNullOrEmpty(p.Phone) && p.Phone == User.Phone) ||
                                                                      (!string.IsNullOrEmpty(p.Email) && p.Email == User.Email));
                if (queryuser == null) //如果用户名不存在
                {
                    op.Message = "用户不存在,请检查用户名!";
                    return(op);
                }
                //用户被冻结
                if (queryuser.IsFreeze)
                {
                    op.Message = "登录失败!用户已被冻结!";
                    return(op);
                }

                //如果用户名存在
                //1.取得提交的密码明文
                //明文加密为初始密码(第一次加密)
                //因为前台已经加密,所以这里就用提交的密文作为第一次加密内容,不再不加密了.注意:前台加密要和后台加密算法相同
                string pwtext = User.PassWord; //前台提交的时候请使用此属性

                //取得用户随机数
                var userRandom = queryuser.Random;

                //用提交的密文+用户随机数,再次加密,生成提交的最后密码
                var lastPassWord = DEncrypt.Get32_MD5Lower(pwtext + userRandom, null);

                if (pwtext != queryuser.SourcePW || lastPassWord != queryuser.PassWord)
                {
                    op.Message = "密码不正确!";
                    return(op);
                }
                #endregion

                #region  查看是否有用户登录状态
                var LoginState = (from a in activeContext.Sys_UserLoginState
                                  where (a.LoginName.Equals(queryuser.LoginName))
                                  select a).FirstOrDefault();
                if (LoginState == null)
                {
                    Sys_UserLoginState UsersLoginState = new Sys_UserLoginState();
                    UsersLoginState.Id         = Guid.NewGuid();
                    UsersLoginState.SessionId  = Guid.NewGuid().ToString().Replace("-", "");
                    UsersLoginState.UserId     = queryuser.Id;
                    UsersLoginState.LoginName  = queryuser.LoginName;
                    UsersLoginState.LastTime   = DateTime.Now;
                    UsersLoginState.EqpMark    = User.EquipmentMark;
                    UsersLoginState.PeriodTime = UsersLoginState.LastTime.AddHours(LoginStateTime); //延长时间
                    activeContext.Sys_UserLoginState.Add(UsersLoginState);
                    activeContext.SaveChanges();
                }
                else
                {
                    LoginState.EqpMark    = User.EquipmentMark;
                    LoginState.LastTime   = DateTime.Now;
                    LoginState.PeriodTime = LoginState.LastTime.AddHours(LoginStateTime); //延长时间
                    activeContext.SaveChanges();
                }
                #endregion


                op.IsSuccessful = true;
                op.Message      = "";
                //op.Data = returnUser;
            }
            catch (Exception ex)
            {
                op.IsSuccessful = false;
                op.Message      = ex.Message;
            }
            return(op);
        }