Exemple #1
0
        /// <summary>
        /// 注册信息
        /// </summary>
        /// <param name="name">登陆名</param>
        /// <param name="pwd">密码</param>
        /// <returns></returns>
        public APIRst Register(string name, string pwd)
        {
            APIRst rst = new APIRst();

            try
            {
                int       ledger = 0;
                DataTable dt     = new YDS6000.BLL.ExpApp.Home.HomeBLL(9999, 0).GetProjectList();
                foreach (DataRow dr in dt.Rows)
                {
                    ledger = CommFunc.ConvertDBNullToInt32(dr["Rule"]);
                }
                //
                bll = new YDS6000.BLL.ExpApp.SysMgr.SysMgrBLL(ledger, 1);
                bool existName = bll.GetExistsCrmNo(name);
                if (existName == true)
                {
                    rst.rst  = false;
                    rst.data = "";
                    rst.err  = new APIErr()
                    {
                        code = -1, msg = "登录名已存在"
                    };
                    return(rst);
                }
                rst.data = bll.Register(name, pwd);
            }
            catch (Exception ex)
            {
                rst.rst      = false;
                rst.err.code = (int)ResultCodeDefine.Error;
                rst.err.msg  = ex.Message;
                FileLog.WriteLog("注册信息错误:" + ex.Message + ex.StackTrace);
            }
            return(rst);
        }
Exemple #2
0
        /// <summary>
        /// 用户登陆
        /// </summary>
        /// <param name="ledger"></param>
        /// <param name="uSign"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        public APIRst Login(string uSign, string pwd)
        {
            int    ledger = 0;
            APIRst rst    = new APIRst();

            try
            {
                //DataTable dt = new YDS6000.BLL.ExpApp.Home.HomeBLL(9999, 0).GetProjectList();
                //foreach (DataRow dr in dt.Rows)
                //    ledger = CommFunc.ConvertDBNullToInt32(dr["Rule"]);
                bll = new YDS6000.BLL.ExpApp.Home.HomeBLL(ledger, user.Uid);

                if (string.IsNullOrEmpty(uSign))
                {
                    rst.rst      = false;
                    rst.err.code = (int)ResultCodeDefine.Error;
                    rst.err.msg  = "用户名不能为空";
                    return(rst);
                }
                if (string.IsNullOrEmpty(pwd))
                {
                    rst.rst      = false;
                    rst.err.code = (int)ResultCodeDefine.Error;
                    rst.err.msg  = "密码不能为空";
                    return(rst);
                }
                WebConfig.GetSysConfig();
                DataTable dtSource = bll.GetUser(uSign);
                int       nRows    = dtSource.Rows.Count;
                if (nRows == 0)
                {
                    rst.rst      = false;
                    rst.err.code = (int)ResultCodeDefine.Error;
                    rst.err.msg  = "没有此用户";
                    return(rst);
                }
                else if (nRows != 1)
                {
                    rst.rst      = false;
                    rst.err.code = (int)ResultCodeDefine.Error;
                    rst.err.msg  = "此用户有多个";
                    return(rst);
                }

                int    uid     = CommFunc.ConvertDBNullToInt32(dtSource.Rows[0]["Uid"]);
                string uName   = CommFunc.ConvertDBNullToString(dtSource.Rows[0]["UName"]);
                string dbPwd   = CommFunc.ConvertDBNullToString(dtSource.Rows[0]["UPasswd"]);
                string project = CommFunc.ConvertDBNullToString(dtSource.Rows[0]["Project"]);
                int    role_id = 0;
                if (!pwd.Trim().Equals(dbPwd))
                {
                    //查询最后最后的登录时间,判断如果少于十五分钟且错误次数已经为五次,提示十五分钟后再次登录
                    //int num = CommFunc.ConvertDBNullToInt32(dtSource.Rows[0]["LoginInt"]);
                    //DateTime dt = CommFunc.ConvertDBNullToDateTime(dtSource.Rows[0]["LoginDate"]);
                    //TimeSpan ts = new TimeSpan();
                    //ts = DateTime.Now - dt; //现在时间-数据库时间
                    //int Result = Convert.ToInt32(ts.TotalMinutes); //转换时间间隔为 分钟  Double型转化成Int型
                    //if (Result < 15 && num > 4)
                    //{
                    //    rst.err.code = (int)ResultCodeDefine.Error;
                    //    rst.err.msg = "登录的次数超过了规定次数,请十五分钟后再试";
                    //    return rst;
                    //}
                    ////登录密码错误,将登录错误次数+1
                    //bll.UpdateLoginErr(uSign);
                    rst.rst      = false;
                    rst.err.code = (int)ResultCodeDefine.Error;
                    rst.err.msg  = "密码错误";
                    return(rst);
                }
                ////
                DataTable dtMd  = bll.GetV3_UserOfModule(uid);
                int       mid   = 0;
                decimal   price = 0;
                foreach (DataRow dr in dtMd.Rows)
                {
                    mid   = CommFunc.ConvertDBNullToInt32(dr["Module_id"]);
                    price = Math.Round(CommFunc.ConvertDBNullToDecimal(dr["Price"]), 4, MidpointRounding.AwayFromZero);
                }
                dynamic attach = new { mid = mid, price = price, step = new { s1 = 200, s2 = 400, p1 = price, p2 = price } };
                //////
                WebConfig.SysProject = project;
                //////
                int    seed = new Random(Guid.NewGuid().GetHashCode()).Next(65, 91);
                string zm   = CommFunc.NunberToChar(seed);
                zm = string.IsNullOrEmpty(zm) ? "APP" : zm;
                string    ticket    = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 10) + zm + (ledger + seed).ToString() + zm + (seed + uid).ToString();
                string    ccKey     = ledger.ToString() + "APP" + uid.ToString();
                CacheUser cacheUser = new CacheUser();
                cacheUser.Ledger   = ledger;
                cacheUser.Uid      = uid;
                cacheUser.USign    = uSign;
                cacheUser.Role_id  = role_id;
                cacheUser.CacheKey = project + "->" + ledger + "->";
                //随机数前10位+ 种子数+ (种子数+用户数之和)
                cacheUser.Ticket = ticket;// Guid.NewGuid().ToString().Replace("-", "").Substring(0, 10) + (seed + cacheUser.Uid).ToString().PadLeft(7, '0');
                cacheUser.Attach = attach;
                //
                //bll.UpdateLoginSue(uSign);
                rst.err.code = 0;
                rst.data     = new { Ticket = cacheUser.Ticket, Name = uName };
                //
                int timeSpan = CommFunc.ConvertDBNullToInt32(ConfigHelper.GetAppSettings("Cached:Time"));
                timeSpan = timeSpan == 0 ? 15 : timeSpan;
                HttpRuntime.Cache.Insert(ccKey, cacheUser, null, DateTime.MaxValue, TimeSpan.FromMinutes(timeSpan));
                HttpContext.Current.Session["CacheUser"] = cacheUser;
            }
            catch (Exception ex)
            {
                rst.rst      = false;
                rst.err.code = (int)ResultCodeDefine.Error;
                rst.err.msg  = ex.Message;
                FileLog.WriteLog("登录错误:" + ex.Message + ex.StackTrace);
            }
            return(rst);
        }
Exemple #3
0
 /// <summary>
 ///
 /// </summary>
 public HomeHelper()
 {
     user = WebConfig.GetSession();
     bll  = new YDS6000.BLL.ExpApp.Home.HomeBLL(user.Ledger, user.Uid);
 }