Beispiel #1
0
        public ActionResult Create(WeixinMP Model)
        {
            //Bll要在这里实例化 不要在action外面 避免生成很多废代码
            WeixinMPBll bll = new WeixinMPBll();

            return(Content(bll.Create(Model)));
        }
Beispiel #2
0
 public ActionResult CreateOfSecond(WeixinMP Model)
 {
     //Bll要在这里实例化 不要在action外面 避免生成很多废代码
     WeixinMPBll bll = new WeixinMPBll();
     //当前的企业信息是保存在登录Userlid
     Model.EnterpriseID = LoginUser.UserBasic.EnterpriseID;
     return Content(bll.AddOfSecond(Model));
 }
Beispiel #3
0
        public ActionResult EditOfSecond(WeixinMP Model)
        {
            //Bll要在这里实例化 不要在action外面 避免生成很多废代码
            WeixinMPBll bll = new WeixinMPBll();


            return(Content(bll.UpdateOfSecond(Model)));
        }
Beispiel #4
0
        public ActionResult CreateOfSecond(WeixinMP Model)
        {
            //Bll要在这里实例化 不要在action外面 避免生成很多废代码
            WeixinMPBll bll = new WeixinMPBll();

            //当前的企业信息是保存在登录Userlid
            Model.EnterpriseID = LoginUser.UserBasic.EnterpriseID;
            return(Content(bll.AddOfSecond(Model)));
        }
 public ActionResult Create(WeixinMP Model)
 {
     //Bll要在这里实例化 不要在action外面 避免生成很多废代码
     WeixinMPBll bll = new WeixinMPBll();
     return Content(bll.Create(Model));
 }
 public ActionResult EditOfSecond(WeixinMP Model)
 {
     //Bll要在这里实例化 不要在action外面 避免生成很多废代码
     WeixinMPBll bll = new WeixinMPBll();
     
     
     return Content(bll.UpdateOfSecond(Model));
 }
        private bool AdminLogin(string id)
        {
            var up = DB.NewDBUnitParameter();
            var pw = PostDataD.pw;
            //登录模式,以下几种:Password-密码登录,AuthCode-验证码登录,OpenID-微信的OpenID方式登录;MP-微信小程序方式登录; 默认Password
            string login_mode = ComFunc.nvl(PostDataD.login_mode);

            if (login_mode == "")
            {
                login_mode = "Password";
            }
            if (!new string[] { "Password", "AuthCode", "OpenID", "MP" }.Contains(login_mode))
            {
                return(false);
            }

            if (string.IsNullOrEmpty(id))
            {
                id = ComFunc.UrlDecode(ComFunc.nvl(PostDataD.id).ToLower());
            }
            //小程序登录需要通过id(即jscode)换取openid和sessionkey,然后写入db
            var weixin_union_id      = "";
            var weixinmp_session_key = "";

            if (login_mode == "MP")
            {
                var     jscode = id;
                dynamic result = WeixinMP.GetSessionByCode(jscode);
                if (result != null && (ComFunc.nvl(result.errcode) == "" || result.errcode == 0))
                {
                    id = result.openid;
                    weixin_union_id      = result.unionid;
                    weixinmp_session_key = result.session_key;
                }
                else
                {
                    id = "";
                }
            }

            var s = from t in DB.LamdaTable(up, "user_info", "a")
                    join t2 in DB.LamdaTable(up, "Auth_Code", "b").LeftJoin() on t.userid equals t2.AuthKey
                    where t.userid == id || t.WeixinID == id || t.PlatformID == id || t.Mobile == id || t.QQ == id || t.WeixinMPID == id || t.WeixinPlatUnionID == id
                    select new
            {
                t.UserID,
                t.LoginPass,
                t.UserName,
                t.UserSex,
                t.WeixinID,
                t.WeixinMPID,
                t.WeixinPlatUnionID,
                t.HeadImgUrl,
                t.PlatformID,
                t2.AuthCode,
                t2.ValidSeconds,
                t2.StartTime,
                t2.IsUsed
            };

            BeginTrans();
            lock (lockobj)
            {
                var list = s.GetQueryList(up);
                if (login_mode == "MP")
                {
                    if (list.Count <= 0 && id != "")
                    {
                        var new_userid = NewUserID(up);;

                        DB.QuickInsert(up, "user_info", new
                        {
                            userid            = new_userid,
                            WeixinMPID        = id,
                            WeixinPlatUnionID = weixin_union_id,
                            add_id            = new_userid,
                            add_ip            = ClientInfo.IP,
                            add_name          = "",
                            add_time          = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                            last_id           = new_userid,
                            last_ip           = ClientInfo.IP,
                            last_name         = "",
                            last_time         = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        });


                        list = s.GetQueryList(up);
                    }
                }

                if (list.Count != 1)
                {
                    return(false);
                }
                dynamic logininfo = list.First();

                var is_valid = false;
                if (login_mode == "Password" && logininfo.loginpass == pw)
                {
                    is_valid = true;
                }
                if (login_mode == "AuthCode")
                {
                    DateTime start_time    = DateTimeStd.ParseStd(logininfo.StartTime).Value;
                    int      valid_seconds = IntStd.IsNotIntThen(logininfo.ValidSeconds, 30);
                    if (start_time.AddSeconds(valid_seconds).CompareTo(DateTime.Now) >= 0 && pw == ComFunc.nvl(logininfo.AuthCode))
                    {
                        is_valid = true;
                    }
                }
                if (login_mode == "OpenID" && logininfo.WeixinID == id)
                {
                    is_valid = true;
                }
                if (login_mode == "MP" && logininfo.WeixinMPID == id)
                {
                    DB.QuickDelete(up, "WeixinMP_SessionKey", new
                    {
                        UserID = logininfo.UserID
                    });
                    DB.QuickInsert(up, "WeixinMP_SessionKey", new
                    {
                        UserID     = logininfo.UserID,
                        SessionKey = weixinmp_session_key,
                        add_id     = logininfo.UserID,
                        add_ip     = ClientInfo.IP,
                        add_name   = "",
                        add_time   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                        last_id    = logininfo.UserID,
                        last_ip    = ClientInfo.IP,
                        last_name  = "",
                        last_time  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    });

                    is_valid = true;
                }

                if (!is_valid)
                {
                    if (login_mode != "MP")
                    {
                        DB.QuickUpdate(up, "user_info", new
                        {
                            ErrorTime     = IntStd.IsNotIntThen(logininfo.ErrorTime) + 1,
                            LastLoginDate = DateTime.Now,
                            LastLoginIP   = ClientInfo.IP
                        }, new { UserID = logininfo.UserID });
                    }

                    return(false);
                }

                DB.QuickUpdate(up, "user_info", new
                {
                    ErrorTime     = 0,
                    LastLoginDate = DateTime.Now,
                    LastLoginIP   = ClientInfo.IP
                }, new { UserID = logininfo.UserID });
                var private_info = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);
                private_info.weixin_id       = logininfo.weixinid;
                private_info.weixinmp_id     = logininfo.WeixinMPID;
                private_info.weixin_union_id = logininfo.WeixinPlatUnionID;
                private_info.platform_id     = logininfo.PlatformID;
                //登录者的唯一编码
                SetClaimSaveParameter("user_id", logininfo.userid);
                SetClaimSaveParameter("sex", logininfo.UserSex);
                SetClaimSaveParameter("username", ComFunc.UrlEncode(logininfo.UserName));
                SetClaimSaveParameter("p_info", EncryptByPublicKey(((FrameDLRObject)private_info).ToJSONString(true)));
            }
            CommitTrans();
            return(true);
        }