Exemplo n.º 1
0
        /// <summary>
        ///     1-成功;2-密码错误;-1-用户不存在;3-未审核;4审核不通过
        /// </summary>
        /// <param name="UserLogiName"></param>
        /// <param name="userpassowrd"></param>
        /// <param name="isrember"></param>
        /// <returns></returns>
        public static bool login(SysUser su, string userloginname, string userpassowrd, bool isrember)
        {
            if (su != null)
            {
                var bu = new BUser();
                var ip = "";
                if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null) // 服务器, using proxy
                {
                    //得到真实的客户端地址
                    if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
                    {
                        ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                    }
                }
                else //如果没有使用代理服务器或者得不到客户端的ip  not using proxy or can't get the Client IP
                {
                    if (HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] != null)
                    {
                        //得到服务端的地址
                        ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                    }
                }


                //默认Cookie,自动登陆使用
                if (isrember)
                {
                    HttpCookie cookie = new HttpCookie("Zcqxxx");
                    cookie.Values.Add("Name", userloginname);
                    cookie.Values.Add("Pwd", userpassowrd);
                    cookie.Expires = System.DateTime.Now.AddDays(7.0);
                    HttpContext.Current.Response.Cookies.Add(cookie);
                }
                //记录IP及时间
                bu.Update(new SysUser {
                    UserID = su.UserID, LastTime = DateTime.Now, LastIP = ip, LoginTimes = (su.LoginTimes ?? 0) + 1
                });
                //创建Account
                var ac = new Account();
                ac.User = su;
                //获取权限列表
                ac.OperateList = bu.GetOperateByUserID(su.UserID);
                //获取用户角色
                var bur = new BUserRole();

                DataTable dt = bur.GetUserRoleByUserID(su.UserID);
                ac.UserRoleNames = new ArrayList();
                ac.UserRoleIds   = new ArrayList();

                for (var i = 0; i < dt.Rows.Count; i++)
                {
                    ac.UserRoleNames.Add(dt.Rows[i]["RoleName"].ToString());
                    ac.UserRoleIds.Add(dt.Rows[i]["RoleID"].ToString());
                }
                ////获取用户区域
                //if (ac.User.LimitAreas == null) ac.User.LimitAreas = "";
                //if (ac.User.IsMain == false)
                //{
                //    if (ac.User.LimitAreas == "")
                //    {
                //        //获取主用户的限制区域
                //        Query qm = new Query();
                //        qm.Add("OrgID", ac.User.OrgID);
                //        qm.Add("IsMain", true);
                //        SysUser MainSu = bu.GetUserByQuery(qm);
                //        if (MainSu != null)
                //        {
                //            if (MainSu.LimitAreas == null) MainSu.LimitAreas = "";
                //            if (MainSu.LimitAreas.ToString() != "")
                //            {
                //                ac.User.LimitAreas = MainSu.LimitAreas;
                //            }
                //        }
                //    }
                //}
                //if (ac.User.LimitAreas != "") ac.User.LimitAreas += "|98";
                //if (ac.User.IsPayUser != true) ac.User.LimitAreas = "";
                ////获取用户所属机构信息
                //if (su.OrgID != null && su.OrgID != 0)
                //{
                //    BCompany bc = new BCompany();
                //    ac.CompanyInfo = bc.GetCompanyByCompanyID((int)su.OrgID);
                //}
                HttpContext.Current.Session["Account"] = ac;

                return(true);
            }
            return(false);
        }