protected void Page_Load(object sender, EventArgs e) { WebUserAuth.SignOut(); //移除OpenId allen 2015-07-30 GlobalUtils.ClearOpenIdFromCookie(); this.ReturnUrl = WEBRequest.GetString("ReturnUrl", "/Index.aspx"); }
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); } }
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); } } } }
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); }
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("登录失败,用户状态不能登录"); } }
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; }
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; } }
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); }
//用户注册 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(); } }