protected override void Initialize(RequestContext requestContext) { base.Initialize(requestContext); WorkContext.IsHttpAjax = WebHelper.IsAjax(); WorkContext.IP = WebHelper.GetIP(); WorkContext.RegionInfo = Regions.GetRegionByIP(WorkContext.IP); WorkContext.RegionId = WorkContext.RegionInfo.RegionId; WorkContext.Url = WebHelper.GetUrl(); WorkContext.UrlReferrer = WebHelper.GetUrlReferrer(); //获得用户唯一标示符sid WorkContext.Sid = ShopUtils.GetSidCookie(); if (WorkContext.Sid.Length == 0) { //生成sid WorkContext.Sid = Sessions.GenerateSid(); //将sid保存到cookie中 ShopUtils.SetSidCookie(WorkContext.Sid); } PartUserInfo partUserInfo; //获得用户id int uid = ShopUtils.GetUidCookie(); if (uid < 1)//当用户为游客时 { //创建游客 partUserInfo = Users.CreatePartGuest(); } else//当用户为会员时 { //获得保存在cookie中的密码 string encryptPwd = ShopUtils.GetCookiePassword(); //防止用户密码被篡改为危险字符 if (encryptPwd.Length == 0 || !SecureHelper.IsBase64String(encryptPwd)) { //创建游客 partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; ShopUtils.SetUidCookie(-1); ShopUtils.SetCookiePassword(""); } else { partUserInfo = Users.GetPartUserByUidAndPwd(uid, ShopUtils.DecryptCookiePassword(encryptPwd)); if (partUserInfo != null) { //发放登陆积分 Credits.SendLoginCredits(ref partUserInfo, DateTime.Now); } else//当会员的账号或密码不正确时,将用户置为游客 { partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; ShopUtils.SetUidCookie(-1); ShopUtils.SetCookiePassword(""); } } WorkContext.EncryptPwd = encryptPwd; } //设置用户等级 if (UserRanks.IsBanUserRank(partUserInfo.UserRid) && partUserInfo.LiftBanTime <= DateTime.Now) { UserRankInfo userRankInfo = UserRanks.GetUserRankByCredits(partUserInfo.PayCredits); Users.UpdateUserRankByUid(partUserInfo.Uid, userRankInfo.UserRid); partUserInfo.UserRid = userRankInfo.UserRid; } WorkContext.PartUserInfo = partUserInfo; WorkContext.Uid = partUserInfo.Uid; WorkContext.UserName = partUserInfo.UserName; WorkContext.UserEmail = partUserInfo.Email; WorkContext.UserMobile = partUserInfo.Mobile; WorkContext.Password = partUserInfo.Password; WorkContext.NickName = partUserInfo.NickName; WorkContext.Avatar = partUserInfo.Avatar; WorkContext.UserRid = partUserInfo.UserRid; WorkContext.UserRankInfo = UserRanks.GetUserRankById(partUserInfo.UserRid); WorkContext.UserRTitle = WorkContext.UserRankInfo.Title; //设置用户管理员组 WorkContext.AdminGid = partUserInfo.AdminGid; WorkContext.AdminGroupInfo = AdminGroups.GetAdminGroupById(partUserInfo.AdminGid); WorkContext.AdminGTitle = WorkContext.AdminGroupInfo.Title; //设置当前控制器类名 WorkContext.Controller = RouteData.Values["controller"].ToString().ToLower(); //设置当前动作方法名 WorkContext.Action = RouteData.Values["action"].ToString().ToLower(); WorkContext.PageKey = string.Format("/{0}/{1}", WorkContext.Controller, WorkContext.Action); }
/// <summary> /// 登录 /// </summary> public ActionResult Login() { string returnUrl = WebHelper.GetQueryString("returnUrl"); if (returnUrl.Length == 0) { returnUrl = Url.Action("index", "home"); } if (WorkContext.MallConfig.LoginType == "") { return(PromptView(returnUrl, "商城目前已经关闭登陆功能!")); } if (WorkContext.Uid > 0) { return(PromptView(returnUrl, "您已经登录,无须重复登录!")); } if (WorkContext.MallConfig.LoginFailTimes != 0 && LoginFailLogs.GetLoginFailTimesByIp(WorkContext.IP) >= WorkContext.MallConfig.LoginFailTimes) { return(PromptView(returnUrl, "您已经输入错误" + WorkContext.MallConfig.LoginFailTimes + "次密码,请15分钟后再登陆!")); } //get请求 if (WebHelper.IsGet()) { LoginModel model = new LoginModel(); model.ReturnUrl = returnUrl; model.ShadowName = WorkContext.MallConfig.ShadowName; model.IsRemember = WorkContext.MallConfig.IsRemember == 1; model.IsVerifyCode = CommonHelper.IsInArray(WorkContext.PageKey, WorkContext.MallConfig.VerifyPages); model.OAuthPluginList = Plugins.GetOAuthPluginList(); return(View(model)); } //ajax请求 string accountName = WebHelper.GetFormString(WorkContext.MallConfig.ShadowName); string password = WebHelper.GetFormString("password"); string verifyCode = WebHelper.GetFormString("verifyCode"); int isRemember = WebHelper.GetFormInt("isRemember"); StringBuilder errorList = new StringBuilder("["); //验证账户名 if (string.IsNullOrWhiteSpace(accountName)) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "accountName", "账户名不能为空", "}"); } else if (accountName.Length < 4 || accountName.Length > 50) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "accountName", "账户名必须大于3且不大于50个字符", "}"); } else if ((!SecureHelper.IsSafeSqlString(accountName, false))) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "accountName", "账户名不存在", "}"); } //验证密码 if (string.IsNullOrWhiteSpace(password)) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "password", "密码不能为空", "}"); } else if (password.Length < 4 || password.Length > 32) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "password", "密码必须大于3且不大于32个字符", "}"); } //验证验证码 if (CommonHelper.IsInArray(WorkContext.PageKey, WorkContext.MallConfig.VerifyPages)) { if (string.IsNullOrWhiteSpace(verifyCode)) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "verifyCode", "验证码不能为空", "}"); } else if (verifyCode.ToLower() != Sessions.GetValueString(WorkContext.Sid, "verifyCode")) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "verifyCode", "验证码不正确", "}"); } } //当以上验证全部通过时 PartUserInfo partUserInfo = null; if (errorList.Length == 1) { if (BMAConfig.MallConfig.LoginType.Contains("2") && ValidateHelper.IsEmail(accountName))//邮箱登陆 { partUserInfo = Users.GetPartUserByEmail(accountName); if (partUserInfo == null) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "accountName", "邮箱不存在", "}"); } } else if (BMAConfig.MallConfig.LoginType.Contains("3") && ValidateHelper.IsMobile(accountName))//手机登陆 { partUserInfo = Users.GetPartUserByMobile(accountName); if (partUserInfo == null) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "accountName", "手机不存在", "}"); } } else if (BMAConfig.MallConfig.LoginType.Contains("1"))//用户名登陆 { partUserInfo = Users.GetPartUserByName(accountName); if (partUserInfo == null) { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "accountName", "用户名不存在", "}"); } } if (partUserInfo != null) { if (Users.CreateUserPassword(password, partUserInfo.Salt) != partUserInfo.Password) //判断密码是否正确 { LoginFailLogs.AddLoginFailTimes(WorkContext.IP, DateTime.Now); //增加登陆失败次数 errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "password", "密码不正确", "}"); } else if (partUserInfo.UserRid == 1) //当用户等级是禁止访问等级时 { if (partUserInfo.LiftBanTime > DateTime.Now) //达到解禁时间 { UserRankInfo userRankInfo = UserRanks.GetUserRankByCredits(partUserInfo.PayCredits); Users.UpdateUserRankByUid(partUserInfo.Uid, userRankInfo.UserRid); partUserInfo.UserRid = userRankInfo.UserRid; } else { errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "accountName", "您的账号当前被锁定,不能访问", "}"); } } } } if (errorList.Length > 1)//验证失败时 { return(AjaxResult("error", errorList.Remove(errorList.Length - 1, 1).Append("]").ToString(), true)); } else//验证成功时 { //删除登陆失败日志 LoginFailLogs.DeleteLoginFailLogByIP(WorkContext.IP); //更新用户最后访问 Users.UpdateUserLastVisit(partUserInfo.Uid, DateTime.Now, WorkContext.IP, WorkContext.RegionId); //更新购物车中用户id Carts.UpdateCartUidBySid(partUserInfo.Uid, WorkContext.Sid); //将用户信息写入cookie中 MallUtils.SetUserCookie(partUserInfo, (WorkContext.MallConfig.IsRemember == 1 && isRemember == 1) ? 30 : -1); return(AjaxResult("success", "登录成功")); } }
protected override void Initialize(RequestContext requestContext) { base.Initialize(requestContext); this.ValidateRequest = false; WorkContext.IsHttpAjax = WebHelper.IsAjax(); WorkContext.IP = WebHelper.GetIP(); WorkContext.RegionInfo = Regions.GetRegionByIP(WorkContext.IP); WorkContext.RegionId = WorkContext.RegionInfo.RegionId; WorkContext.Url = WebHelper.GetUrl(); WorkContext.UrlReferrer = WebHelper.GetUrlReferrer(); //获得用户唯一标示符sid WorkContext.Sid = MallUtils.GetSidCookie(); if (WorkContext.Sid.Length == 0) { //生成sid WorkContext.Sid = Sessions.GenerateSid(); //将sid保存到cookie中 MallUtils.SetSidCookie(WorkContext.Sid); } PartUserInfo partUserInfo; //获得用户id int uid = MallUtils.GetUidCookie(); if (uid < 1)//当用户为游客时 { //创建游客 partUserInfo = Users.CreatePartGuest(); } else//当用户为会员时 { //获得保存在cookie中的密码 string encryptPwd = MallUtils.GetCookiePassword(); //防止用户密码被篡改为危险字符 if (encryptPwd.Length == 0 || !SecureHelper.IsBase64String(encryptPwd)) { //创建游客 partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } else { partUserInfo = Users.GetPartUserByUidAndPwd(uid, MallUtils.DecryptCookiePassword(encryptPwd)); if (partUserInfo != null) { //发放登陆积分 Credits.SendLoginCredits(ref partUserInfo, DateTime.Now); } else//当会员的账号或密码不正确时,将用户置为游客 { partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } } WorkContext.EncryptPwd = encryptPwd; } //设置用户等级 if (UserRanks.IsBanUserRank(partUserInfo.UserRid) && partUserInfo.LiftBanTime <= DateTime.Now) { UserRankInfo userRankInfo = UserRanks.GetUserRankByCredits(partUserInfo.PayCredits); Users.UpdateUserRankByUid(partUserInfo.Uid, userRankInfo.UserRid); partUserInfo.UserRid = userRankInfo.UserRid; } //当用户被禁止访问时重置用户为游客 if (partUserInfo.UserRid == 1) { partUserInfo = Users.CreatePartGuest(); WorkContext.EncryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } WorkContext.PartUserInfo = partUserInfo; WorkContext.Uid = partUserInfo.Uid; WorkContext.UserName = partUserInfo.UserName; WorkContext.UserEmail = partUserInfo.Email; WorkContext.UserMobile = partUserInfo.Mobile; WorkContext.Password = partUserInfo.Password; WorkContext.NickName = partUserInfo.NickName; WorkContext.Avatar = partUserInfo.Avatar; WorkContext.PayCreditName = Credits.PayCreditName; WorkContext.PayCreditCount = partUserInfo.PayCredits; WorkContext.RankCreditName = Credits.RankCreditName; WorkContext.RankCreditCount = partUserInfo.RankCredits; WorkContext.UserRid = partUserInfo.UserRid; WorkContext.UserRankInfo = UserRanks.GetUserRankById(partUserInfo.UserRid); WorkContext.UserRTitle = WorkContext.UserRankInfo.Title; //设置用户商城管理员组 WorkContext.MallAGid = partUserInfo.MallAGid; WorkContext.MallAdminGroupInfo = MallAdminGroups.GetMallAdminGroupById(partUserInfo.MallAGid); WorkContext.MallAGTitle = WorkContext.MallAdminGroupInfo.Title; //设置当前控制器类名 WorkContext.Controller = RouteData.Values["controller"].ToString().ToLower(); //设置当前动作方法名 WorkContext.Action = RouteData.Values["action"].ToString().ToLower(); WorkContext.PageKey = string.Format("/{0}/{1}", WorkContext.Controller, WorkContext.Action); WorkContext.ImageCDN = WorkContext.MallConfig.ImageCDN; WorkContext.CSSCDN = WorkContext.MallConfig.CSSCDN; WorkContext.ScriptCDN = WorkContext.MallConfig.ScriptCDN; //在线总人数 WorkContext.OnlineUserCount = OnlineUsers.GetOnlineUserCount(); //在线游客数 WorkContext.OnlineGuestCount = OnlineUsers.GetOnlineGuestCount(); //在线会员数 WorkContext.OnlineMemberCount = WorkContext.OnlineUserCount - WorkContext.OnlineGuestCount; //搜索词 WorkContext.SearchWord = string.Empty; //购物车中商品数量 WorkContext.CartProductCount = Carts.GetCartProductCountCookie(); //设置导航列表 WorkContext.NavList = Navs.GetNavList(); //设置友情链接列表 WorkContext.FriendLinkList = FriendLinks.GetFriendLinkList(); //设置帮助列表 WorkContext.HelpList = Helps.GetHelpList(); }
/// <summary> /// 接口方式访问没有记录cookie,通过用户账号来获取信息 /// </summary> /// <param name="account"></param> /// <returns></returns> private PartUserInfo InitUser(string account) { partUserInfo = Users.GetPartUserByMobile(account); if (partUserInfo.Uid == 0) { //创建游客 partUserInfo = Users.CreatePartGuest(); } //获得用户id int uid = partUserInfo.Uid; //设置用户等级 if (UserRanks.IsBanUserRank(partUserInfo.UserRid) && partUserInfo.LiftBanTime <= DateTime.Now) { UserRankInfo userRankInfo = UserRanks.GetUserRankByCredits(partUserInfo.PayCredits); Users.UpdateUserRankByUid(partUserInfo.Uid, userRankInfo.UserRid); partUserInfo.UserRid = userRankInfo.UserRid; } //当用户被禁止访问时重置用户为游客 if (partUserInfo.UserRid == 1) { partUserInfo = Users.CreatePartGuest(); WorkContext.EncryptPwd = string.Empty; ShopUtils.SetUidCookie(-1, "web"); ShopUtils.SetCookiePassword("", "web"); } WorkContext.PartUserInfo = partUserInfo; WorkContext.Uid = partUserInfo.Uid; WorkContext.UserName = partUserInfo.UserName; WorkContext.UserEmail = partUserInfo.Email; WorkContext.UserMobile = partUserInfo.Mobile; WorkContext.Password = partUserInfo.Password; WorkContext.NickName = partUserInfo.NickName; WorkContext.Avatar = partUserInfo.Avatar; WorkContext.UserRid = partUserInfo.UserRid; WorkContext.UserRankInfo = UserRanks.GetUserRankById(partUserInfo.UserRid); WorkContext.UserRTitle = WorkContext.UserRankInfo.Title; //设置用户管理员组 WorkContext.AdminGid = partUserInfo.AdminGid; WorkContext.AdminGroupInfo = AdminGroups.GetAdminGroupById(partUserInfo.AdminGid); WorkContext.AdminGTitle = WorkContext.AdminGroupInfo.Title; //设置当前控制器类名 WorkContext.Controller = RouteData.Values["controller"].ToString().ToLower(); //设置当前动作方法名 WorkContext.Action = RouteData.Values["action"].ToString().ToLower(); WorkContext.PageKey = string.Format("/{0}/{1}", WorkContext.Controller, WorkContext.Action); //当前商城主题 WorkContext.Theme = WorkContext.ShopConfig.PCTheme; //设置图片cdn WorkContext.ImageCDN = WorkContext.ShopConfig.ImageCDN; //设置csscdn WorkContext.CSSCDN = WorkContext.ShopConfig.CSSCDN; //设置脚本cdn WorkContext.ScriptCDN = WorkContext.ShopConfig.ScriptCDN; //在线总人数 WorkContext.OnlineUserCount = OnlineUsers.GetOnlineUserCount(); //在线游客数 WorkContext.OnlineGuestCount = OnlineUsers.GetOnlineGuestCount(); //在线会员数 WorkContext.OnlineMemberCount = WorkContext.OnlineUserCount - WorkContext.OnlineGuestCount; //搜索词 WorkContext.SearchWord = string.Empty; //设置导航列表 //WorkContext.NavList = Navs.GetNavList(); //设置友情链接列表 //WorkContext.FriendLinkList = FriendLinks.GetFriendLinkList(); //设置帮助列表 //WorkContext.HelpList = Helps.GetHelpList(); return(partUserInfo); }
protected override void Initialize(RequestContext requestContext) { base.Initialize(requestContext); this.ValidateRequest = false; WorkContext.IP = WebHelper.GetIP(); if (WebHelper.GetQueryString("ip") == WorkContext.IP) { WorkContext.RegionInfo = Regions.GetRegionById(WebHelper.GetQueryInt("regionid")); } else { WorkContext.RegionInfo = IPSearch.SearchRegion(WorkContext.IP); } if (WorkContext.RegionInfo == null) { WorkContext.RegionInfo = new RegionInfo() { RegionId = -1, Name = "未知区域" }; } WorkContext.RegionId = WorkContext.RegionInfo.RegionId; WorkContext.Url = WebHelper.GetUrl(); WorkContext.AppType = WebHelper.GetQueryInt("appType"); WorkContext.AppVersion = WebHelper.GetQueryString("appVersion"); WorkContext.AppOS = WebHelper.GetQueryString("appOS"); //获得用户唯一标示符sid WorkContext.Sid = WebHelper.GetQueryString("sid"); if (WorkContext.Sid.Length == 0) { //生成sid WorkContext.Sid = Sessions.GenerateSid(); } PartUserInfo partUserInfo; //获得用户id int uid = WebHelper.GetQueryInt("uid"); if (uid < 1)//当用户为游客时 { //创建游客 partUserInfo = Users.CreatePartGuest(); } else//当用户为会员时 { string encryptPwd = WebHelper.GetQueryString("encryptPwd"); //防止用户密码被篡改为危险字符 if (encryptPwd.Length == 0 || !SecureHelper.IsBase64String(encryptPwd)) { //创建游客 partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; } else { partUserInfo = Users.GetPartUserByUidAndPwd(uid, MallUtils.DecryptCookiePassword(encryptPwd)); if (partUserInfo != null) { //发放登陆积分 Credits.SendLoginCredits(ref partUserInfo, DateTime.Now, TypeHelper.StringToDateTime(WebHelper.GetQueryString("slctime")), out WorkContext.SLCTime); } else//当会员的账号或密码不正确时,将用户置为游客 { partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; } } WorkContext.EncryptPwd = encryptPwd; } //设置用户等级 if (UserRanks.IsBanUserRank(partUserInfo.UserRid) && partUserInfo.LiftBanTime <= DateTime.Now) { UserRankInfo userRankInfo = UserRanks.GetUserRankByCredits(partUserInfo.PayCredits); Users.UpdateUserRankByUid(partUserInfo.Uid, userRankInfo.UserRid); partUserInfo.UserRid = userRankInfo.UserRid; } WorkContext.PartUserInfo = partUserInfo; WorkContext.Uid = partUserInfo.Uid; WorkContext.UserName = partUserInfo.UserName; WorkContext.UserEmail = partUserInfo.Email; WorkContext.UserMobile = partUserInfo.Mobile; WorkContext.Password = partUserInfo.Password; WorkContext.NickName = partUserInfo.NickName; WorkContext.Avatar = partUserInfo.Avatar; WorkContext.PayCreditName = Credits.PayCreditName; WorkContext.PayCreditCount = partUserInfo.PayCredits; WorkContext.RankCreditName = Credits.RankCreditName; WorkContext.RankCreditCount = partUserInfo.RankCredits; WorkContext.UserRid = partUserInfo.UserRid; WorkContext.UserRankInfo = UserRanks.GetUserRankById(partUserInfo.UserRid); WorkContext.UserRTitle = WorkContext.UserRankInfo.Title; //设置用户商城管理员组 WorkContext.MallAGid = partUserInfo.MallAGid; WorkContext.MallAdminGroupInfo = MallAdminGroups.GetMallAdminGroupById(partUserInfo.MallAGid); WorkContext.MallAGTitle = WorkContext.MallAdminGroupInfo.Title; //设置当前控制器类名 WorkContext.Controller = RouteData.Values["controller"].ToString().ToLower(); //设置当前动作方法名 WorkContext.Action = RouteData.Values["action"].ToString().ToLower(); WorkContext.PageKey = string.Format("/{0}/{1}", WorkContext.Controller, WorkContext.Action); WorkContext.ImageCDN = WorkContext.MallConfig.ImageCDN; WorkContext.CSSCDN = WorkContext.MallConfig.CSSCDN; WorkContext.ScriptCDN = WorkContext.MallConfig.ScriptCDN; //在线总人数 WorkContext.OnlineUserCount = OnlineUsers.GetOnlineUserCount(); //在线游客数 WorkContext.OnlineGuestCount = OnlineUsers.GetOnlineGuestCount(); //在线会员数 WorkContext.OnlineMemberCount = WorkContext.OnlineUserCount - WorkContext.OnlineGuestCount; //购物车中商品数量 WorkContext.CartProductCount = WebHelper.GetQueryInt("cartProductCount"); }
protected override void Initialize(RequestContext requestContext) { base.Initialize(requestContext); this.ValidateRequest = false; WorkContext.IsHttpAjax = WebHelper.IsAjax(); WorkContext.IP = WebHelper.GetIP(); WorkContext.RegionInfo = Regions.GetRegionByIP(WorkContext.IP); WorkContext.RegionId = WorkContext.RegionInfo.RegionId; WorkContext.Url = WebHelper.GetUrl(); WorkContext.UrlReferrer = WebHelper.GetUrlReferrer(); //获得用户唯一标示符sid WorkContext.Sid = MallUtils.GetSidCookie(); WorkContext.Openid = ""; if (WorkContext.Sid.Length == 0) { //生成sid WorkContext.Sid = Sessions.GenerateSid(); //将sid保存到cookie中 MallUtils.SetSidCookie(WorkContext.Sid); } PartUserInfo partUserInfo; //获得用户id int uid = MallUtils.GetUidCookie(); if (uid < 1)//当用户为游客时 { //创建游客 partUserInfo = Users.CreatePartGuest(); BrnMall.Core.WeiXinConfig wxconfig = BrnMall.Core.BMAConfig.WeiXinConfig; #region 获取用户openid //if (Request.QueryString["code"] == null) //{ // string host = Request.Url.Host; // string path = Request.Path; // string url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", wxconfig.AppID, System.Web.HttpUtility.UrlEncode("http://" + host + path)); // Response.Redirect(url); //} //else //{ // //BrnMall.Core.WeiXinConfig wxconfig = BrnMall.Core.BMAConfig.WeiXinConfig; // string code = Request.QueryString["code"];//获取授权code // // string openIdUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + wxconfig.AppID + "&secret=" + wxconfig.AppSecret + "&code=" + code + "&grant_type=authorization_code"; // string openIdUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + wxconfig.AppID + "&secret=" + wxconfig.AppSecret + "&code=" + code + "&grant_type=authorization_code"; // string content = ""; // try // { // content = BrnMall.Core.WeiXinHelp.GetPage(openIdUrl, ""); // } // catch // { // Response.Write("code:" + code + "这边错了"); // } // string openid = "";//根据授权 获取当前人的openid // try // { // openid = BrnMall.Core.WeiXinHelp.GetJsonValue(content, "openid"); // } // catch // { // Response.Write("code:" + code + "||||content" + content); // } // Senparc.Weixin.MP.AdvancedAPIs.User.UserInfoJson dic = null; // dic = Senparc.Weixin.MP.AdvancedAPIs.UserApi.Info(WeiXinHelp.IsExistAccess_Token2(), openid); // if (dic.subscribe == 1) // { // //获取用户 // //try // //{ // //BMALog.Instance.Write("openid:" + openid); // partUserInfo = Users.GetPartUserByOpenid(openid); // if (partUserInfo != null) // { // MallUtils.SetUserCookie(partUserInfo, 30); // //WorkContext.EncryptPwd= MallUtils.GetCookiePassword(); // } // else//不存在 // { // //partUserInfo = Users.CreatePartGuest(); // //WorkContext.EncryptPwd = string.Empty; // //MallUtils.SetUidCookie(-1); // //MallUtils.SetCookiePassword(""); // UserInfo userinfo = new UserInfo(); // userinfo.Pid = 3; // userinfo.Openid = dic.openid; // userinfo.NickName = dic.nickname; // userinfo.UserName = dic.nickname; // userinfo.Password = Users.CreateUserPassword("Migewan123", "1"); // userinfo.Avatar = dic.headimgurl; // userinfo.UserLevel = 0; // userinfo.PayCredits = 0; // userinfo.RankCredits = 0; // userinfo.VerifyEmail = 0; // userinfo.VerifyMobile = 0; // userinfo.Salt = Randoms.CreateRandomValue(6); // userinfo.LastVisitIP = WebHelper.GetIP(); // userinfo.MallAGid = 1;//非管理员组 // //userinfo.LastVisitRgId = Regions.GetRegionByIP(userinfo.LastVisitIP); // userinfo.LastVisitTime = DateTime.Now; // userinfo.RegisterIP = WebHelper.GetIP(); // userinfo.RegisterTime = DateTime.Now; // Users.CreateUser(userinfo); // partUserInfo = Users.GetPartUserByOpenid(openid); // MallUtils.SetUserCookie(partUserInfo, 30); // } // } //} #endregion #region 测试 ////string openid = "oD-R9wWHGhJ3rcRgX7sbU5W0s9sU"; string openid = "oD-R9wbVoaX-B-7kmk7sz1nz_-bc"; partUserInfo = Users.GetPartUserByOpenid(openid); if (partUserInfo != null) { MallUtils.SetUserCookie(partUserInfo, 30); //WorkContext.EncryptPwd= MallUtils.GetCookiePassword(); } else//不存在 { partUserInfo = Users.CreatePartGuest(); WorkContext.EncryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } #endregion } else//当用户为会员时 { //获得保存在cookie中的密码 string encryptPwd = MallUtils.GetCookiePassword(); //防止用户密码被篡改为危险字符 if (encryptPwd.Length == 0 || !SecureHelper.IsBase64String(encryptPwd)) { //创建游客 partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } else { partUserInfo = Users.GetPartUserByUidAndPwd(uid, MallUtils.DecryptCookiePassword(encryptPwd)); if (partUserInfo != null) { //发放登陆积分 // Credits.SendLoginCredits(ref partUserInfo, DateTime.Now); } else//当会员的账号或密码不正确时,将用户置为游客 { partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } } WorkContext.EncryptPwd = encryptPwd; } //try //{ //设置用户等级 if (UserRanks.IsBanUserRank(partUserInfo.UserRid) && partUserInfo.LiftBanTime <= DateTime.Now) { UserRankInfo userRankInfo = UserRanks.GetUserRankByCredits(partUserInfo.PayCredits); Users.UpdateUserRankByUid(partUserInfo.Uid, userRankInfo.UserRid); partUserInfo.UserRid = userRankInfo.UserRid; } //当用户被禁止访问时重置用户为游客 if (partUserInfo.UserRid == 1) { partUserInfo = Users.CreatePartGuest(); WorkContext.EncryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } //} //catch //{ // Response.Write("我的错"); //} //try //{ WorkContext.PartUserInfo = partUserInfo; WorkContext.Pid = partUserInfo.Pid; WorkContext.Userno = partUserInfo.Userno; WorkContext.UserLevel = partUserInfo.UserLevel; WorkContext.Openid = partUserInfo.Openid; WorkContext.Addtime = partUserInfo.Addtime; WorkContext.IsReal = partUserInfo.IsReal; WorkContext.Uid = partUserInfo.Uid; WorkContext.UserName = partUserInfo.UserName; WorkContext.UserEmail = partUserInfo.Email; WorkContext.UserMobile = partUserInfo.Mobile; WorkContext.Password = partUserInfo.Password; WorkContext.NickName = partUserInfo.NickName; WorkContext.Avatar = partUserInfo.Avatar; WorkContext.PayCreditName = Credits.PayCreditName; WorkContext.PayCreditCount = partUserInfo.PayCredits; WorkContext.RankCreditName = Credits.RankCreditName; WorkContext.RankCreditCount = partUserInfo.RankCredits; Core.BLL.SendBag bllsendbag = new Core.BLL.SendBag(); //全部红包 //WorkContext.CollarBag = bllsendbag.GetRecordSum(" Receiverid="+ partUserInfo.Uid ); //已领红包 WorkContext.NoCollarBag = bllsendbag.GetRecordSum(" Receiverid=" + partUserInfo.Uid + " and Status=0");; //未领红包 WorkContext.HaCollarBag = 0; WorkContext.UserRid = partUserInfo.UserRid; WorkContext.UserRankInfo = UserRanks.GetUserRankById(partUserInfo.UserRid); //WorkContext.UserRTitle = WorkContext.UserRankInfo.Title; switch (WorkContext.UserLevel) { case 1: WorkContext.UserRTitle = "银卡会员"; break; case 2: WorkContext.UserRTitle = "金卡会员"; break; case 3: WorkContext.UserRTitle = "钻石会员"; break; default: WorkContext.UserRTitle = "普通会员"; break; } //设置用户商城管理员组 WorkContext.MallAGid = partUserInfo.MallAGid; WorkContext.MallAdminGroupInfo = MallAdminGroups.GetMallAdminGroupById(partUserInfo.MallAGid); WorkContext.MallAGTitle = WorkContext.MallAdminGroupInfo.Title; //设置当前控制器类名 WorkContext.Controller = RouteData.Values["controller"].ToString().ToLower(); //设置当前动作方法名 WorkContext.Action = RouteData.Values["action"].ToString().ToLower(); WorkContext.PageKey = string.Format("/{0}/{1}", WorkContext.Controller, WorkContext.Action); WorkContext.ImageCDN = WorkContext.MallConfig.ImageCDN; WorkContext.CSSCDN = WorkContext.MallConfig.CSSCDN; WorkContext.ScriptCDN = WorkContext.MallConfig.ScriptCDN; //在线总人数 WorkContext.OnlineUserCount = OnlineUsers.GetOnlineUserCount(); //在线游客数 WorkContext.OnlineGuestCount = OnlineUsers.GetOnlineGuestCount(); //在线会员数 WorkContext.OnlineMemberCount = WorkContext.OnlineUserCount - WorkContext.OnlineGuestCount; //搜索词 WorkContext.SearchWord = string.Empty; //购物车中商品数量 WorkContext.CartProductCount = Carts.GetCartProductCountCookie(); //} //catch (Exception ex) //{ // Response.Write("赋值时:"+ex.ToString()); //} }