예제 #1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     WebUserAuth.SignOut();
     //移除OpenId allen 2015-07-30
     GlobalUtils.ClearOpenIdFromCookie();
     this.ReturnUrl = WEBRequest.GetString("ReturnUrl", "/Index.aspx");
 }
예제 #2
0
        protected string type = string.Empty;//触屏版:wx,APP:""

        protected void Page_Load(object sender, EventArgs e)
        {
            #region APP如果已经登陆,官网自动登陆
            string appActivityToken = Tool.WEBRequest.GetString("t");
            if (!string.IsNullOrEmpty(appActivityToken))
            {
                UserBasicInfoInfo model = new TuanDai.PortalSystem.BLL.AppUserTokenRecBLL().GetAppActivityUser(appActivityToken);
                if (model != null)
                {
                    WebUserAuth.SignIn(model.Id.ToString(), Page.Request.ToString());
                }
                else
                {
                    WebUserAuth.SignOut();
                }
            }
            #endregion

            type = Tool.WEBRequest.GetString("type", "wx");
            this.isAuthenticated = WebUserAuth.IsAuthenticated;
            if (this.isAuthenticated)
            {
                //var database = JunTeEntities.Read();
                //var userId = WebUserAuth.UserId.Value;
                //var user = database.UserBasicInfo.First(p => p.Id == userId);

                ////获取注册链接地址.
                //this.inviteUrl = string.Format("{0}/user/Register.aspx?extendkey={1}", GlobalUtils.WebURL, user.ExtendKey);
            }
        }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                #region APP如果已经登陆,官网自动登陆
                string appActivityToken = Tool.WEBRequest.GetString("t");
                if (!string.IsNullOrEmpty(appActivityToken))
                {
                    UserBasicInfoInfo model = new TuanDai.PortalSystem.BLL.AppUserTokenRecBLL().GetAppActivityUser(appActivityToken);
                    if (model != null)
                    {
                        WebUserAuth.SignIn(model.Id.ToString(), Page.Request.ToString());
                    }
                    else
                    {
                        WebUserAuth.SignOut();
                    }
                }
                #endregion
                Guid?userId = WebUserAuth.UserId;
                if (userId != Guid.Empty)
                {
                    IsLogin = true;

                    if (string.IsNullOrEmpty(Request.QueryString["key"]))
                    {
                        UserBasicInfoInfo userModel = new UserBLL().GetUserBasicInfoModelById(userId.Value);
                        ExtendKey = userModel.ExtendKey;
                        Response.Redirect("IndexApp.aspx?key=" + ExtendKey);
                    }
                }
            }
        }
예제 #4
0
        private string JumpBase(string telNo, string projUrl)
        {
            //如果用户已经登录
            if (WebUserAuth.UserId.HasValue && WebUserAuth.UserId.Value != Guid.Empty)
            {
                //是否同一用户
                bool userEx = UserExists(telNo, WebUserAuth.UserId.Value);
                if (userEx)
                {
                    return(projUrl);
                }
                else
                {
                    WebUserAuth.SignOut();
                    GlobalUtils.ClearOpenIdFromCookie();
                }
            }

            //如果用户没有登录
            //判断用户是否存在
            TdUserInfo user = GetUserInfo(telNo);
            //如果用户存在 自动登录
            string result = String.Empty;

            if (user != null)
            {
                //是否平台用户
                if (user.RegisterFrom.StartsWith(_app))
                {
                    result = AutoLogin(telNo, user);
                }
                //自动登录失败 或 不是平台用户 跳转到登录页面
                if (!string.IsNullOrEmpty(result) || !user.RegisterFrom.StartsWith(_app))
                {
                    CookieHelper.WriteCookie("Wap_UserName", telNo, 1);
                    return(GlobalUtils.WebURL + "/user/Login.aspx?ReturnUrl=" + projUrl);
                }
            }
            else //如果用户不存在  自动注册
            {
                result = UserInsertByPhone(telNo);
                if (!string.IsNullOrEmpty(result))
                {
                    return(GlobalUtils.WebURL + "/user/Register.aspx?tdfrom=" + _app +
                           "&phone=" + telNo +
                           "&ReturnUrl=" +
                           projUrl);
                }
            }
            return(projUrl);
        }
예제 #5
0
        private string AutoLogin(string telNo, TdUserInfo model)
        {
            if (model == null)
            {
                return("没有找到用户信息");
            }

            if (string.IsNullOrEmpty(telNo.Trim()))
            {
                return("手机号不能为空");
            }
            if ((model.uStatus ?? 0) == 1)
            {
                WebUserAuth.SignIn(model.Id.ToString());
                //登录时判断超级会员是否过期
                model.Level = BusinessDll.Users.JudgeUserLevel(model.Level.Value, model.LevelEndDate);

                model.LastLoginDate = DateTime.Now;

                string userIP = Tool.WebFormHandler.GetIP();
                TuanDai.InfoSystem.Model.LoginLog loginLogEntity = new TuanDai.InfoSystem.Model.LoginLog();
                loginLogEntity.Id         = Guid.NewGuid().ToString();
                loginLogEntity.UserId     = model.Id.ToString();
                loginLogEntity.IpAddress  = userIP;
                loginLogEntity.LoginDate  = model.LastLoginDate;
                loginLogEntity.DeviceType = "WeiXin";
                loginLogEntity.DeviceName = Request["app"].ToLower() + "自动登录";
                //TuanDai.InfoSystem.WcfClient.LoginLogService logApi = new TuanDai.InfoSystem.WcfClient.LoginLogService();
                //logApi.AddLoginLog(loginLogEntity);
                TuanDai.WXApiWeb.SysLogHelper.AddLoginLog(loginLogEntity);

                UserBLL userbll = new UserBLL();
                //保存用户最后登录时间
                userbll.WXUpdateUserLastLoginDate(model);
                //记录注册IP
                //BusinessDll.RegisterIp.WriteLoginHandler(model.Id);

                userbll.AsyncLoginEnd(model.Id, 1, userIP, "", "", model.ThirdPartyId, model.ThirdPartyType);

                //登录成功后移除第三方写的Cookie
                CookieHelper.ClearCookie("ThirdLoginUserInfo");
                CookieHelper.ClearCookie("WXLoginType");
                return(string.Empty);
            }
            else
            {
                return("登录失败,用户状态不能登录");
            }
        }
예제 #6
0
 protected void Page_Load(object sender, EventArgs e)
 {
     #region APP如果已经登陆,官网自动登陆
     string appActivityToken = Tool.WEBRequest.GetString("t");
     if (!string.IsNullOrEmpty(appActivityToken))
     {
         UserBasicInfoInfo model = new TuanDai.PortalSystem.BLL.AppUserTokenRecBLL().GetAppActivityUser(appActivityToken);
         if (model != null)
         {
             WebUserAuth.SignIn(model.Id.ToString(), Page.Request.ToString());
         }
         else
         {
             WebUserAuth.SignOut();
         }
     }
     #endregion
     this.isAuthenticated = WebUserAuth.IsAuthenticated;
 }
예제 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string type = WEBRequest.GetQueryString("type");
            string code = "";

            switch (type.Trim().ToLower())
            {
            case "":
                string ReturnUrl = WEBRequest.GetQueryString("ReturnUrl");
                code = WEBRequest.GetQueryString("code");
                string goBackUrl = ReturnUrl;
                if (ReturnUrl.IndexOf("?") != -1)
                {
                    goBackUrl += "&code=" + code;
                }
                else
                {
                    goBackUrl += "?code=" + code;
                }

                Response.Redirect(goBackUrl);
                break;

            //获取微细OpenId
            case "getopenid":
                #region
                Response.ContentType = "application/json";
                try
                {
                    code = WEBRequest.GetQueryString("code");
                    ThirdLoginSDK sdkApi = new ThirdLoginSDK();
                    sdkApi.InitSDK(ThirdLoginSDK.ThirdLoginType.WeiXin);
                    string wxOpenId = sdkApi.GetCookieOpenId(code);
                    TuanDai.LogSystem.LogClient.LogClients.TraceLog(TdConfig.ApplicationName, "getopenid", "", wxOpenId);
                    this.PrintJson("1", wxOpenId);
                }
                catch (Exception ex)
                {
                    this.PrintJson("-100", "程序异常:" + ex.Message);
                }
                finally
                {
                    Response.End();
                }
                break;

                #endregion
            //获取微信用户信息
            case "getuserinfor":
                #region
                Response.ContentType = "application/json";
                try
                {
                    DateTime beginTime = DateTime.Now;
                    code = WEBRequest.GetQueryString("code");
                    //写入openid 因为code被使用过一次后,就会失效,缓存的openid就取不到。
                    string openId = WEBRequest.GetQueryString("openid");
                    if (openId.IsNotEmpty())
                    {
                        GlobalUtils.WriteOpenIdToCookie(openId);
                    }

                    ThirdLoginSDK sdk = new ThirdLoginSDK();
                    sdk.InitSDK(ThirdLoginSDK.ThirdLoginType.WeiXin);
                    //获取微信上用户信息
                    TuanDai.WXApiWeb.Common.ThirdLoginSDK.WXOAuthUser wxUserInfo = sdk.GetWXUserSubscribeInfor(code, openId.ToText());

                    var jsonStr = JsonHelper.ToJson(wxUserInfo);
                    this.PrintJson("1", jsonStr);
                    DateTime endTime = DateTime.Now;

                    LogClients.TraceLog("WXTouch", "微信授权时间差", openId, (endTime - beginTime).TotalMilliseconds.ToString());
                }
                catch (Exception ex)
                {
                    this.PrintJson("-100", "程序异常:" + ex.Message);
                    LogClients.ErrorLog("WXTouch", "微信授权错误", "", ex.Message + ex.StackTrace);
                }
                finally
                {
                    Response.End();
                }
                break;

                #endregion
            //获取Token
            case "getaccesstoken":
                #region
                string token       = WEBRequest.GetQueryString("Token");
                string configToken = ConfigHelper.getConfigString("APIKey");
                Response.ContentType = "application/json";
                try
                {
                    if (configToken != token)
                    {
                        this.PrintJson("99", "验证不通过!");
                        return;
                    }
                    //从同一个缓存中读取全局的Token
                    ThirdLoginSDK sdkApi = new ThirdLoginSDK();
                    sdkApi.InitSDK(ThirdLoginSDK.ThirdLoginType.WeiXin);
                    TuanDai.WXApiWeb.Common.ThirdLoginSDK.WXOAuth_Token accessToken = sdkApi.GetWXUserOpenIdByCgi(code);
                    var jsonStr = JsonHelper.ToJson(accessToken);
                    this.PrintJson("1", jsonStr);
                }
                catch (Exception ex)
                {
                    this.PrintJson("-100", "程序异常:" + ex.Message);
                }
                finally
                {
                    Response.End();
                }
                break;

                #endregion
            //App中活动登录
            case "appajaxlogin":
                #region
                Response.ContentType = "application/json";
                try
                {
                    string appActivityToken = WEBRequest.GetFormString("appActivityToken");
                    if (!string.IsNullOrEmpty(appActivityToken))
                    {
                        TuanDai.PortalSystem.Model.UserBasicInfoInfo model = new TuanDai.PortalSystem.BLL.AppUserTokenRecBLL().GetAppActivityUser(appActivityToken);
                        if (model != null)
                        {
                            string DOMAINNAME = ConfigurationManager.AppSettings["CookieDomain"];
                            Tool.CookieHelper.WriteCookie("TDW_WapUserName", model.UserName);
                            string strLastLoginDate = DateTime.Now.ToString("yyyy-MM-dd") + model.UserName;
                            if (string.IsNullOrEmpty(CookieHelper.GetCookie("TDLastLoginDate")) || CookieHelper.GetCookie("TDLastLoginDate") != strLastLoginDate)
                            {
                                TuanDai.PortalSystem.BLL.VipGetWorthBLL.AddGetWorth(model.Id, (int)ConstString.UserGrowthType.EveryDayFirstLogin, null, 0);
                            }

                            Tool.CookieHelper.WriteCookie(DOMAINNAME, "TDLastLoginDate", strLastLoginDate);
                            WebUserAuth.SignIn(model.Id.ToString());
                        }
                        else
                        {
                            WebUserAuth.SignOut();
                        }
                    }
                    this.PrintJson("1", "登录成功!");
                }
                catch (Exception ex)
                {
                    this.PrintJson("-1", ex.Message);
                }
                finally
                {
                    Response.End();
                }
                #endregion
                break;

            //获取用户推送开关设置
            case "getwxpushswitch":
                #region
                token       = WEBRequest.GetQueryString("Token");
                configToken = ConfigHelper.getConfigString("APIKey");
                string pushtype = WEBRequest.GetQueryString("PushType");
                Response.ContentType = "application/json";
                try
                {
                    if (configToken != token)
                    {
                        this.PrintJson("99", "验证不通过!");
                        return;
                    }
                    string strSQL = "SELECT DISTINCT OpenId FROM dbo.UserWXNotice WHERE ISNULL(OpenId,'')!=''";
                    if (pushtype.ToLower() == "wexnotice")
                    {
                        strSQL += " and  IsWeXNotice=1";
                    }
                    else if (pushtype.ToLower() == "actnotice")
                    {
                        strSQL += " and  IsActivityNotice=1";
                    }
                    else
                    {
                        strSQL += " and 1=0";
                    }
                    Dapper.DynamicParameters dyParams   = new Dapper.DynamicParameters();
                    List <string>            OpenIDList = PublicConn.QueryBySql <string>(strSQL, ref dyParams);
                    var jsonStr = JsonHelper.ToJson(OpenIDList);
                    this.PrintJson("1", jsonStr);
                }
                catch (Exception ex)
                {
                    this.PrintJson("-100", "程序异常:" + ex.Message);
                }
                finally
                {
                    Response.End();
                }
                #endregion
                break;
            }
        }
예제 #8
0
        private string UserInsertByPhone(string phone)
        {
            string pwd = new UserBLL().GetRandomPassword(8);//随机密码

            if (!phone.IsPhone())
            {
                return("手机号码格式不正确");
            }

            string strIp = Tool.WebFormHandler.GetIP();

            string[] ips    = strIp.Split(',');
            string   realIp = ips.Length > 1 ? ips[1] : ips[0];
            string   result = Users.UserIsRegByIP(realIp);

            if (result != "1")
            {
                string dt = result.Split('|')[1];
                return("注册失败:为防止恶意注册,请在" + dt + "后重新注册");
            }

            Guid userid = Guid.NewGuid();
            //var model = WXRegister.AddUserInfo(userid, _app, pwd, phone, "", "",
            //    "", "", 0, realIp);


            string from = _app;

            if (!string.IsNullOrEmpty(_appUserId))
            {
                from += "_" + _appUserId;
            }
            #region 写用户信息
            UserRegisterInfo registerUser = new UserRegisterInfo();
            registerUser.Id             = userid;
            registerUser.ExtenderKey    = "";
            registerUser.UserName       = string.Format("{0}wx{1}", phone, DateTime.Now.ToString("yyMMdd")); //针对重复注册特殊处理
            registerUser.Pwd            = pwd;
            registerUser.Email          = string.Empty;
            registerUser.TelNo          = phone;
            registerUser.ThirdPartyId   = string.Empty;
            registerUser.ThirdPartyType = (int)ConstString.ThirdPartyType.TuandaiUser;
            registerUser.RegisterFrom   = from;
            registerUser.RegisterIP     = realIp;
            registerUser.OpenId         = GlobalUtils.OpenId;
            registerUser.NickName       = registerUser.UserName;
            string msg = string.Empty;
            var    userBasicInfoInfo = new UserBLL().RegiserUser(registerUser, ref msg);
            if (userBasicInfoInfo != null && !string.IsNullOrEmpty(userBasicInfoInfo.ExtenderKey))
            {
                //记录日志
                SysLogHelper.WriteErrorLog("会员推广_AddUserInfo", "UserName:" + userBasicInfoInfo.UserName + ";ExtendKey:" + userBasicInfoInfo.ExtenderKey);
            }
            #endregion

            if (userBasicInfoInfo != null)
            {
                RegisterUserHandler.AsyncAfterRegister(_app, userBasicInfoInfo);

                if ((userBasicInfoInfo.uStatus ?? 0) == 1)
                {
                    var isNewSmsRequest = ConfigHelper.getConfigString("IsNewSmsRequest", "0");
                    if (isNewSmsRequest == "0")
                    {
                        //改用新的发短信,邮件,系统消息
                        var messageSender = new MessageSend();
                        //var parameters = new Dictionary<string, object>();
                        //parameters.Add("User", model);
                        //parameters.Add("CurrentDate", DateTime.Now);
                        //parameters.Add("ExtenderKey", model.ExtenderKey);
                        //messageSender.SendMessage2(eventCode: MessageTemplates.RegisterSuccess, parameters: parameters, mobile: model.TelNo, email: model.Email, userId: model.Id);

                        //将生成的密码已短信方式发送给用户
                        var parameters = new Dictionary <string, object>();
                        parameters.Add("PassWord", pwd);
                        messageSender.SendMessage2(option: SendOption.Sms, eventCode: MessageTemplates.BindMobile,
                                                   parameters: parameters, mobile: userBasicInfoInfo.TelNo);
                    }
                    else
                    {
                        SmsRequest rechargeSuccessSmsRequest = new SmsRequest();
                        rechargeSuccessSmsRequest.EventCode      = MsgTemplatesType.BindMobile;
                        rechargeSuccessSmsRequest.PlatformSource = PlatformSource.WeiXin;
                        rechargeSuccessSmsRequest.UserId         = userBasicInfoInfo.Id;
                        rechargeSuccessSmsRequest.EmailAddress   = userBasicInfoInfo.Email;
                        rechargeSuccessSmsRequest.Mobile         = userBasicInfoInfo.TelNo;
                        rechargeSuccessSmsRequest.Parameters     = new Dictionary <string, object>();
                        rechargeSuccessSmsRequest.Parameters.Add("PassWord", pwd);

                        string errorMessage = string.Empty;
                        SmsClient.SendMessage(rechargeSuccessSmsRequest, ref errorMessage);
                    }

                    try
                    {
                        TuanDai.InfoSystem.Model.LoginLog loginLogEntity = new TuanDai.InfoSystem.Model.LoginLog();
                        loginLogEntity.Id         = Guid.NewGuid().ToString();
                        loginLogEntity.UserId     = userBasicInfoInfo.Id.ToString();
                        loginLogEntity.IpAddress  = Tool.WebFormHandler.GetIP();
                        loginLogEntity.LoginDate  = DateTime.Now;
                        loginLogEntity.DeviceType = "WeiXin";
                        loginLogEntity.DeviceName = _app + "自动注册登录";
                        //LoginLogService logApi = new LoginLogService();
                        //logApi.AddLoginLog(loginLogEntity);
                        TuanDai.WXApiWeb.SysLogHelper.AddLoginLog(loginLogEntity);
                    }
                    catch (Exception ex)
                    {
                        NetLog.WriteLoginHandler("写入注册成功登录日志出错", Tool.ExceptionHelper.GetExceptionMessage(ex));
                    }
                }

                #region 注册成功后自动登录

                if (GlobalUtils.IsWeiXinBrowser)
                {
                    string strOpenId = TuanDai.WXApiWeb.Common.WeiXinApi.GetUserWXOpenId(userBasicInfoInfo.Id);
                    if (strOpenId.IsNotEmpty())
                    {
                        GlobalUtils.WriteOpenIdToCookie(strOpenId.ToText());
                    }
                }
                WebUserAuth.SignIn(userid.ToString());

                #endregion
            }
            else
            {
                return("添加用户失败");
            }
            return(string.Empty);
        }
예제 #9
0
        //用户注册
        protected void RegisterUser()
        {
            Response.ContentType = "application/json";
            try
            {
                string mobileNumber = Tool.WEBRequest.GetFormString("mobilenumber");
                string validateCode = Tool.WEBRequest.GetFormString("verificationCode");
                if (string.IsNullOrEmpty(mobileNumber))
                {
                    PrintJson("0", "手机号码不能为空");
                    return;
                }
                if (string.IsNullOrEmpty(validateCode))
                {
                    PrintJson("0", "手机验证码不能为空");
                    return;
                }

                //判断注册IP是否受限
                string   strIP  = Tool.WebFormHandler.GetIP();
                string[] IP     = strIP.Split(',');
                string   RealIP = "";
                if (IP.Length > 1)
                {
                    RealIP = IP[1];
                }
                else
                {
                    RealIP = IP[0];
                }
                string result = Users.UserIsRegByIP(RealIP);
                if ("1" != result)
                {
                    string dt = result.Split('|')[1];
                    PrintJson("0", "注册失败:为防止恶意注册,请在" + dt + "后重新注册");
                    return;
                }

                int codeResult = BusinessDll.Users.CheckCodeRecord(ConstString.MSCodeType.PhoneCode, ConstString.MSCodeType2.RegPhoneValid, mobileNumber, validateCode);
                if (codeResult != 1)
                {
                    PrintJson("0", "注册失败:验证码错误或已过期,请重新获取输入");
                    return;
                }

                UserBLL           bll       = new UserBLL();
                SqlParameter[]    paramData = new SqlParameter[] { new SqlParameter("@TelNo", mobileNumber) };
                UserBasicInfoInfo model     = bll.WXGetUserBasicInfo("TelNo=@TelNo ", paramData);
                if (model != null)
                {
                    // 使用现有帐号自动登录
                    WebUserAuth.SignIn(model.Id.ToString());
                    PrintJson("1", "");
                    return;
                }

                Guid   userid          = Guid.NewGuid();
                string newPassWord     = GetRandomPassword(8);
                var    userbasicEntity = WXRegister.AddUserInfo(userid, "wx_godwealth", newPassWord, mobileNumber, "", "", "", "", 0);
                if (userbasicEntity != null)
                {
                    //发送密码短信通知
                    //var msgSender = new BusinessDll.MessageSend();
                    string smsContent = string.Format("恭喜您,注册成功!团贷网用户名:{0},密码:{1}, 登录www.tuandai.com免费领取红包.", mobileNumber, newPassWord);
                    //msgSender.AsyncSendNoteHandler("Note", null, mobileNumber, smsContent);

                    PrintJson("1", "");
                    return;
                }
                PrintJson("0", "注册失败");
            }
            catch (Exception ex)
            {
                BusinessDll.NetLog.WriteLoginHandler("财神爷活动新用户注册报错", Tool.ExceptionHelper.GetExceptionMessage(ex), "触屏版");
                PrintJson("0", "注册失败");
            }
            finally
            {
                Response.End();
            }
        }