예제 #1
0
        public ActionResult Identify(string code)
        {
            if (string.IsNullOrEmpty(code))
            {
                return(Redirect(OAuth2Api.GetCode(_corpId, AbsoluteUri(), "STATE", _agentId)));
            }

            WxIdentifyDto dto = HttpContext.Session.GetObjectFromJson <WxIdentifyDto>("WxIdentify");

            if (dto == null)
            {
                LoginViewModel vm = new LoginViewModel()
                {
                    ReturnUrl = AbsoluteUri()
                };
                try {
                    var accessToken            = AccessTokenContainer.GetToken(_corpId, _secret);
                    GetUserInfoResult userInfo = OAuth2Api.GetUserId(accessToken, code);
                    vm.WorkerCn = userInfo.UserId;
                    vm.DeviceId = userInfo.DeviceId;
                }
                catch {
                    Logger.Error("微信授权错误");
                }
                return(View("login", vm));
            }
            else
            {
                return(View("TaskList", dto));
            }
        }
예제 #2
0
        public ActionResult Login(string returnUrl, string code)
        {
            if (returnUrl == null)
            {
                return(null);
            }
            // 根据 returnUrl 得到 AppName, 然后得到_secret和_agentId
            string appName = _appDict[GetActionOfUrl(returnUrl)];

            _secret  = _appConfiguration[string.Format("SenparcWeixinSetting:{0}:Secret", appName)];
            _agentId = _appConfiguration[string.Format("SenparcWeixinSetting:{0}:AgentId", appName)];

            if (string.IsNullOrEmpty(code))
            {
                // 备案
                return(Redirect(OAuth2Api.GetCode(_corpId, AbsoluteUri(), "STATE", _agentId)));
            }

            var vm = new LoginViewModel()
            {
                ReturnUrl = returnUrl
            };

            try {
                var accessToken            = AccessTokenContainer.GetToken(_corpId, _secret);
                GetUserInfoResult userInfo = OAuth2Api.GetUserId(accessToken, code);
                vm.WorkerCn = userInfo.UserId;
                vm.DeviceId = userInfo.DeviceId;
            }
            catch {
                Logger.Error("微信登录错误");
            }

            return(View(vm));
        }
예제 #3
0
        private void printUserInfo(LoginResult lr, String authEP)
        {
            try
            {
                GetUserInfoResult userInfo = lr.userInfo;

                form1.updateTextBox4("\nLogging in ...\n");
                form1.updateTextBox4("Logged in to SalesForce.com as:");
                form1.appendTextBox5("UserID: " + userInfo.userId);
                form1.appendTextBox5("User Full Name: " +
                                     userInfo.userFullName);
                form1.appendTextBox5("User Email: " +
                                     userInfo.userEmail);
                form1.appendTextBox5("SessionID: " +
                                     lr.sessionId);
                form1.appendTextBox5("Auth End Point: " +
                                     authEP);
                form1.appendTextBox5("Service End Point: " +
                                     lr.serverUrl);
            }
            catch (SoapException e)
            {
                form1.updateTextBox4("An unexpected error has occurred: " + e.Message +
                                     " Stack trace: " + e.StackTrace);
            }
        }
예제 #4
0
        private void printUserInfo(LoginResult lr, String authEP)
        {
            try
            {
                GetUserInfoResult userInfo = lr.userInfo;

                Console.WriteLine("\nLogging in ...\n");
                Console.WriteLine("UserID: " + userInfo.userId);
                Console.WriteLine("User Full Name: " +
                                  userInfo.userFullName);
                Console.WriteLine("User Email: " +
                                  userInfo.userEmail);
                Console.WriteLine();
                Console.WriteLine("SessionID: " +
                                  lr.sessionId);
                Console.WriteLine("Auth End Point: " +
                                  authEP);
                Console.WriteLine("Service End Point: " +
                                  lr.serverUrl);
                Console.WriteLine();
            }
            catch (SoapException e)
            {
                Console.WriteLine("An unexpected error has occurred: " + e.Message +
                                  " Stack trace: " + e.StackTrace);
            }
        }
예제 #5
0
        private void showUserInfo(LoginResult lr, String authEP)
        {
            try
            {
                GetUserInfoResult userInfo     = lr.userInfo;
                String            userId       = userInfo.userId;
                String            userFullName = userInfo.userFullName;
                String            userEmail    = userInfo.userEmail;
                String            serverUrl    = lr.serverUrl;

                String userInfoText = $@"UserID:
{userId}
User Full Name:
{userFullName}
User Email:
{userEmail}
Auth End Point:
{authEP}
Service End Point:
{serverUrl}
";
                MessageBox.Show(userInfoText, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #6
0
파일: WXHelp.cs 프로젝트: fl1029/QJCore
        public string GetUserDataByCode(string strCode, string strModelCode)
        {
            string UserCode = "";

            strModelCode = strModelCode.Split('_')[0];
            try
            {
                if (Qyinfo.IsUseWX == "Y")
                {
                    JH_Auth_Model Model = new JH_Auth_ModelB().GetEntities(d => d.ModelCode == strModelCode).FirstOrDefault();
                    if (Model != null)
                    {
                        GetUserInfoResult OBJ = OAuth2Api.GetUserId(GetToken(Model.AppID), strCode);
                        UserCode = OBJ.UserId;
                    }
                }
            }
            catch (Exception EX)
            {
                new JH_Auth_LogB().Insert(new JH_Auth_Log()
                {
                    CRDate = DateTime.Now, LogContent = strModelCode + "获取用户代码" + strCode + "|GetUserDataByCode" + EX.Message.ToString()
                });
            }

            return(UserCode);
        }
예제 #7
0
        public ActionResult Oil(string code)
        {
            if (string.IsNullOrEmpty(code))
            {
                return(Redirect(OAuth2Api.GetCode(_corpId, AbsoluteUri(), "STATE", _agentId)));
            }

            string workerCn = null;

            try {
                var accessToken            = AccessTokenContainer.GetToken(_corpId, _secret);
                GetUserInfoResult userInfo = OAuth2Api.GetUserId(accessToken, code);
                workerCn = userInfo.UserId;
            }
            catch {
                Logger.Error("微信授权错误");
            }

            if (workerCn == null)
            {
                return(Content("系统取不到你的微信标识号"));
            }
            //workerCn = "90005";
            var worker = WorkManager.GetWorkerByCn(workerCn);

            if (!worker.WorkRoleNames.Contains("司机"))
            {
                return(Content("需要司机角色"));
            }
            var depot = WorkManager.GetDepot(worker.DepotId);
            var vm    = new OilViewModel();

            vm.WorkerId = worker.Id;

            foreach (var v in _vehicleCache.GetList().FindAll(x => x.DepotId == depot.Id))
            {
                vm.Vehicles.Add(new ComboItemModel()
                {
                    Id = v.Id, Name = v.Cn + v.License
                });
            }
            foreach (var v in _gasStationCache.GetList().FindAll(x => string.IsNullOrEmpty(x.DepotList) || x.DepotList.Contains(depot.Name)))
            {
                vm.GasStations.Add(new ComboItemModel()
                {
                    Id = v.Id, Name = v.Name
                });
            }
            foreach (var t in _oilTypeCache.GetList())
            {
                vm.OilTypes.Add(new ComboItemModel()
                {
                    Id = t.Id, Name = t.Name
                });
            }

            return(View(vm));
        }
예제 #8
0
        /// <summary>
        /// Gets the user info.
        /// </summary>
        /// <returns>User Info.</returns>
        public GetUserInfoResult GetUserInfo()
        {
            GetUserInfoResult result = null;

            if (CheckConnected())
            {
                result = _binding.getUserInfo();
            }

            return(result);
        }
예제 #9
0
        private Salesforce.Helpers.sForceService.SforceService sfLogin(String sfUserID, String sfUserPwd)
        {
            bool reqlogin = true;

            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
            Salesforce.Helpers.sForceService.SforceService binding;

            // Create a service object if needed
            if (_binding == null)
            {
                binding  = new SforceService();
                reqlogin = true;
            }
            else
            {
                reqlogin = false;
                binding  = _binding;
                try
                {
                    GetUserInfoResult result = binding.getUserInfo();
                }
                catch (SoapException uef)
                {
                    //                 if (uef.ExceptionCode == ExceptionCode.INVALID_SESSION_ID)
                    {
                        reqlogin = true;
                    }
                }
            }
            if (reqlogin)
            {
                LoginResult lr;
                lr = binding.login(sfUserID, sfUserPwd);

                /**
                 * The login results contain the endpoint of the virtual server instance
                 * that is servicing your organization. Set the URL of the binding
                 * to this endpoint.
                 */
                // Save old authentication end point URL
                String authEndPoint = binding.Url;
                // Set returned service endpoint URL
                binding.Url = lr.serverUrl;

                /** Get the session ID from the login result and set it for the
                 * session header that will be used for all subsequent calls.
                 */
                binding.SessionHeaderValue           = new SessionHeader();
                binding.SessionHeaderValue.sessionId = lr.sessionId;
                _binding = binding;
            }
            return(binding);
        }
예제 #10
0
        public ActionResult Callback()
        {
            var access_token = "";
            var code         = "";

            try
            {
                code = Request.QueryString.Get("code");
                if (string.IsNullOrEmpty(code))//没有code表示授权失败
                {
                    return(Content("请从正规途径进入"));
                }

                var state        = Request.QueryString.Get("state");
                var cache_status = System.Web.HttpContext.Current.Cache.Get(state);
                var redirect_url = cache_status == null ? "/" : cache_status.ToString();//没有获取到state,就跳转到首页
                var scope        = WeixinConfig.OauthScope;

                access_token = WeixinConfig.TokenHelper.GetToken();//基础支持中的access_token
                GetUserInfoResult   UserInfo    = OAuth2Api.GetUserId(access_token, code);
                string              userId      = UserInfo.UserId;
                string              user_ticket = UserInfo.user_ticket;
                GetUserDetailResult userDetail  = OAuth2Api.GetUserDetail(access_token, user_ticket);
                string              userName    = userDetail.name;
                AuthorizationManager.SetTicket(false, 1, userId, userName);
                Thread.Sleep(500);//暂停半秒钟,以等待IOS设置Cookies的延迟
                LogWriter.Default.WriteInfo(string.Format("OAuth success: identity: {0} , name: {1} , redirect_rul:{2} ", code, userId, redirect_url));


                EmployeeInfo employeeInfo = ms.EmployeeInfo.Find(userId);
                if (employeeInfo == null)
                {
                    string insStr = "INSERT INTO EmployeeInfo ([EmployeeNo],[EmployeeName],[EmployeePhone]) " +
                                    "VALUES ('" + userId + "',N'" + userDetail.name + "','" + userDetail.mobile + "');";
                    BaseClass.OperateData(insStr);
                }
                else
                {
                    string updStr = "UPDATE EmployeeInfo SET EmployeeName =N'" + userDetail.name +
                                    "',EmployeePhone= '" + userDetail.mobile + "' WHERE EmployeeNo = '" + userId + "'";
                    BaseClass.OperateData(updStr);
                }


                return(new RedirectResult(redirect_url, true));
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
        }
        public ActionResult WeixinQYHSignIn2(string code)
        {
            try
            {
                string userid = "";
                string corpId = "wwa26d4508575b5fe9";
                string secret = "cwcclxDJ0GMIlxsn2U_3kWQUPoiDupZOZMrKFqDDcnI";

                if (string.IsNullOrEmpty(code))
                {
                    return(Json(new { code = 1, Msg = "参数错误" }));
                }

                WebClient wcl   = new WebClient();
                string    url   = string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}", corpId, secret);
                string    json  = wcl.DownloadString(url);
                JObject   token = JObject.Parse(json.Replace("\\", ""));//可用属性请查看官方接入文档(access_token,expires_in,refresh_token,openid,scope,errcode,errmsg)

                if ((int)token["errcode"] != 0)
                {
                    return(Json(new { Code = 1, Msg = "获取信息失败" }));
                }

                var access_token = (string)token["access_token"];

                GetUserInfoResult result = OAuth2Api.GetUserId(access_token, code);
                if (result.errcode.ToString() == "请求成功")
                {
                    userid = result.UserId;
                }
                else
                {
                    return(Json(new { Code = 1, Msg = "获取信息失败:" + result.errmsg }));
                }

                SysUser user = dbContext.Set <SysUser>().Where(x => x.UserCode == userid).FirstOrDefault();
                if (user == null)
                {
                    return(Json(new { Code = 1, Msg = userid + "不存在!" }));
                }

                SSOClient.SignIn(user.UserId);
                return(Redirect("/pages/home/weixin.html"));
            }
            catch (Exception ex)
            {
                LogHelper.SaveLog(ex);
                return(Json(new { Code = 1, Msg = "服务器异常,请联系管理员!" }));
            }
        }
예제 #12
0
        /// <summary>
        /// 获取用户信息;
        /// 微信会进行2次回调,1次断开
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public GetUserInfoResult GetUserOpenIdByCode(string code)
        {
            GetUserInfoResult value = null;
            bool result             = map.TryGetValue(code, out value);

            if (result)
            {
                // map.Remove(code);
                return(value);
            }
            else
            {
                value     = OAuth2Api.GetUserId(AccessTokenOrAppKey, code);
                map[code] = value;
                return(value);
            }
        }
 private void sessionKeepAliveTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
 {
     try
     {
         userinforesult = null;
         userinforesult = SFDCUtility.SForce.getUserInfo();
         if (userinforesult != null)
         {
             this.logger.Info("Session keep alive check , Timeout in : " + userinforesult.sessionSecondsValid);
         }
         else
         {
             this.logger.Error("Session keep alive check returns null");
         }
     }
     catch (Exception generalException)
     {
         this.logger.Error("TruncateNumbers : Error occurred while Truncating incoming data from Salesforce :" + generalException.ToString());
     }
 }
예제 #14
0
 /* 匿名请求:
  * 1. GET方式
  * 2. 入参增加code参数传值:code: '@Request["code"]'
  * 3. ListIntercept添加Controller、Action
  *
  */
 protected override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     #region 获取微信用户信息
     string UserId    = string.Empty;
     string userAgent = Request.UserAgent;
     string jurl      = "";
     if (userAgent.ToLower().Contains("micromessenger"))
     {
         //从微信端访问
         if (Session["WxUserID"] == null || Session["WxUserID"].ToString().Length == 0)
         {
             if (string.IsNullOrWhiteSpace(Request.QueryString["code"]))
             {
                 jurl = OAuth2ApiHelper.GetCode(Request.Url.AbsoluteUri);
                 filterContext.Result = RedirectPermanent(jurl);
                 Logger.Info("jurl:" + jurl);
             }
             else
             {
                 try
                 {
                     GetUserInfoResult result = OAuth2ApiHelper.GetUserId(Request.QueryString["code"]);
                     UserId = result.UserId ?? "";
                     Logger.Info("GetUserId:" + result.ToJson());
                 }
                 catch (Exception ex)
                 {
                     Logger.Error(ex);
                 }
                 Session["WxUserID"] = UserId;
             }
         }
         else
         {
             UserId = Session["WxUserID"] == null ? string.Empty : Session["WxUserID"].ToString();
         }
     }
     #endregion
     base.OnActionExecuting(filterContext);
 }
        public ActionResult SignIn(string code, string state)
        {
            try
            {
                if (string.IsNullOrEmpty(code))
                {
                    return(Redirect("/pages/error/error.html"));
                }

                var token = CommonApi.GetToken(_corpId, _secret);
                if (token.errcode != 0)
                {
                    return(Redirect("/pages/error/error.html"));
                }

                GetUserInfoResult result = OAuth2Api.GetUserId(token.access_token, code);
                if (result.errcode != 0)
                {
                    return(Redirect("/pages/error/error.html"));
                }

                SysUser user = dbContext.Set <SysUser>().Where(x => x.UserCode == result.UserId).FirstOrDefault();
                if (user == null)
                {
                    //没有账号:根据业务调整
                    return(Redirect("/pages/error/error.html"));
                }

                SSOClient.SignIn(user.UserId);
                return(ToMenu(state));
            }
            catch (Exception ex)
            {
                LogHelper.SaveLog(ex);
                return(Json(new { Code = 1, Msg = "服务器异常,请联系管理员!" }));
            }
        }
 public void SetUp()
 {
     _testEntity    = new GetUserInfoResult();
     _privateObject = new PrivateObject(_testEntity);
 }
예제 #17
0
        public ActionResult OAuth2Callback(string corpid, string accesstoken, string scope, string reurl, string code, string state)
        {
            //LogWriter.Info("OAuth2Callback:");
            string url = reurl ?? "";

            url = Base64Helper.DecodeBase64(url.Replace(" ", "+"));

            if (string.IsNullOrEmpty(code))
            {
                LogWriter.Info(string.Format("qyid为“{0}”的OAuth2授权失败,原因:拒绝了授权", corpid));
                return(Content("您拒绝了授权!"));
            }

            if (state != "JeffreySu" && state != "JeffreSu?10000skip=true")
            {
                //这里的state其实是会暴露给客户端的,验证能力很弱,这里只是演示一下
                //实际上可以存任何想传递的数据,比如用户ID,并且需要结合例如下面的Session["OAuthAccessToken"]进行验证
                LogWriter.Info(string.Format("qyid为“{0}”的OAuth2授权失败,原因:验证失败", corpid));
                return(Content("验证失败!请从正规途径进入!"));
            }


            #region 校验
            if (string.IsNullOrEmpty(reurl))
            {
                LogWriter.Info(string.Format("qyid为“{0}”的OAuth2Base获取失败,原因:reurl为空", corpid));
                return(Content("非法访问"));
            }
            var account = GetAccount(corpid);
            if (account == null)
            {
                LogWriter.Info(string.Format("qyid为“{0}”的OAuth2Base获取失败,原因:企业号不存在", corpid));
                return(Content("非法访问"));
            }
            var passtoken = GetPassToken(account, accesstoken);
            if (passtoken == null)
            {
                LogWriter.Info(string.Format("qyid为“{0}”的OAuth2Base获取失败,原因:accesstoken错误", corpid));
                return(Content("非法访问"));
            }
            if (!ValidateOauth2Domain(passtoken, reurl))
            {
                LogWriter.Info(string.Format("qyid为“{0}”的OAuth2Base获取失败,原因:reurl{1}错误", corpid, reurl));
                return(Content("非法访问"));
            }
            #endregion

            //通过,用code换取access_token
            GetUserInfoResult result = null;
            var wxFO = Formula.FormulaHelper.CreateFO <WxFO>();
            try
            {
                result = OAuth2Api.GetUserId(wxFO.GetAccessToken(corpid), code);
                //LogWriter.Info("OAuth2Callback:GetUserId" + JsonHelper.ToJson(result));
            }
            catch (Exception ex)
            {
                LogWriter.Error(ex, string.Format("qyid为{0}的静默授权在通过code获取token时异常", corpid));
                result = OAuth2Api.GetUserId(wxFO.GetAccessToken(corpid, true), code);
            }
            if (result.errcode != ReturnCode_QY.请求成功)
            {
                LogWriter.Info(string.Format("qyid为{0}的静默授权在通过code获取token时异常,原因:{1}", corpid, result.errmsg));
                return(Content("错误:" + result.errmsg));
            }
            if (!string.IsNullOrEmpty(result.user_ticket) && !string.IsNullOrEmpty(result.UserId) && (scope == "snsapi_userinfo" || scope == "snsapi_privateinfo"))
            {
                GetUserDetailResult resultDetail = null;
                try
                {
                    resultDetail = CommonJsonSend.Send <GetUserDetailResult>(wxFO.GetAccessToken(corpid), "https://qyapi.weixin.qq.com/cgi-bin/user/getuserdetail?access_token={0}",
                                                                             new {
                        user_ticket = result.user_ticket,
                    });
                    //LogWriter.Info("OAuth2Callback:Send" + JsonHelper.ToJson(resultDetail));
                }
                catch (Exception ex)
                {
                    LogWriter.Error(ex, string.Format("qyid为{0}的认证授权在通过ticket获取详情时异常", corpid));
                }
                if (resultDetail != null && resultDetail.userid != null)
                {
                    url = string.Format("{0}{1}userinfo={2}"
                                        , url, url.Contains('?') ? "&" : "?", Base64Helper.EncodeBase64(JsonHelper.ToJson(new {
                        userid     = result.UserId,
                        openid     = result.OpenId,
                        name       = resultDetail.name,
                        department = resultDetail.department,
                        position   = resultDetail.position,
                        mobile     = resultDetail.mobile,
                        gender     = resultDetail.gender,
                        email      = resultDetail.email,
                        avatar     = resultDetail.avatar,
                    })));
                    //LogWriter.Info("OAuth2Callback:url1:" + url);
                    return(Redirect(url));
                }
            }

            url = string.Format("{0}{1}userinfo={2}"
                                , url, url.Contains('?') ? "&" : "?", Base64Helper.EncodeBase64(JsonHelper.ToJson(new { userid = result.UserId, openid = result.OpenId })));
            //LogWriter.Info("OAuth2Callback:url2:" + url);
            return(Redirect(url));
        }
예제 #18
0
        /* 匿名请求:
         * 1. GET方式
         * 2. 入参增加code参数传值:code: '@Request["code"]'
         * 3. ListIntercept添加Controller、Action
         *
         */
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            string UserId    = string.Empty;
            string userAgent = Request.UserAgent;
            string jurl      = "";

            if (userAgent.ToLower().Contains("micromessenger"))
            { //从微信端访问
                if (Session["WxUserID"] == null || Session["WxUserID"].ToString().Length == 0)
                {
                    #region 获取微信用户信息
                    if (string.IsNullOrWhiteSpace(Request.QueryString["code"]))
                    {
                        jurl = OAuth2ApiHelper.GetCode(Request.Url.AbsoluteUri);
                        filterContext.Result = RedirectPermanent(jurl);
                        Logger.Info("jurl:" + jurl);
                    }
                    else
                    {
                        try
                        {
                            GetUserInfoResult result = OAuth2ApiHelper.GetUserId(Request.QueryString["code"]);
                            UserId = result.UserId ?? "";
                            Logger.Info("GetUserId:" + result.ToJson());
                        }
                        catch (Exception ex)
                        {
                            Logger.Error(ex);
                        }
                        Session["WxUserID"] = UserId;
                    }
                    #endregion
                }
                else
                {
                    UserId = Session["WxUserID"] == null ? string.Empty : Session["WxUserID"].ToString();
                }
            }
            if (!IsLogin())
            {
                if (userAgent.ToLower().Contains("micromessenger"))
                {
                    #region 微信登录

                    if (!string.IsNullOrWhiteSpace(UserId))
                    {
                        try
                        {
                            UserEntity userEntity = new UserBLL().WechatLogin(UserId);
                            if (userEntity != null)
                            {
                                #region 记录登录成功信息
                                AuthorizeBLL   authorizeBLL = new AuthorizeBLL();
                                Operator       operators    = new Operator();
                                LoginUserModel LoginUser    = new LoginUserModel();
                                LoginUser.UserId        = userEntity.UserId;
                                LoginUser.Code          = userEntity.EnCode;
                                LoginUser.Account       = userEntity.Account;
                                LoginUser.UserName      = userEntity.RealName;
                                LoginUser.Password      = userEntity.Password;
                                LoginUser.Secretkey     = userEntity.Secretkey;
                                LoginUser.CompanyId     = userEntity.OrganizeId;
                                LoginUser.DepartmentId  = userEntity.DepartmentId;
                                LoginUser.ManagerId     = userEntity.ManagerId;
                                LoginUser.Manager       = userEntity.Manager;
                                LoginUser.HeadIcon      = userEntity.HeadIcon;
                                LoginUser.IPAddress     = Net.Ip;
                                LoginUser.IPAddressName = IPLocation.GetLocation(Net.Ip);
                                LoginUser.LogTime       = DateTime.Now;
                                LoginUser.Token         = DESEncrypt.Encrypt(Guid.NewGuid().ToString());
                                operators.LoginInfo     = LoginUser;


                                // 写入当前用户数据权限
                                AuthorizeDataModel dataAuthorize = new AuthorizeDataModel();
                                dataAuthorize.ReadAutorize        = authorizeBLL.GetDataAuthor(operators);
                                dataAuthorize.ReadAutorizeUserId  = authorizeBLL.GetDataAuthorUserId(operators);
                                dataAuthorize.WriteAutorize       = authorizeBLL.GetDataAuthor(operators, true);
                                dataAuthorize.WriteAutorizeUserId = authorizeBLL.GetDataAuthorUserId(operators, true);
                                operators.DataAuthorize           = dataAuthorize;
                                OperatorProvider.AppUserId        = userEntity.UserId;
                                OperatorProvider.Provider.AddCurrent(operators);
                                Logger.Info("微信登录写入缓存:" + LoginUser.ToJson());
                                #endregion
                            }
                            else
                            {
                                Logger.Info("登录失败1");
                                //跳转到登录页面
                                filterContext.Result = new RedirectResult("~/Login/Index");
                            }
                        }
                        catch (Exception ex)
                        {
                            Logger.Info("登录异常");
                            Logger.Error(ex);
                            //跳转到登录页面
                            filterContext.Result = new RedirectResult("~/Login/Index");
                        }
                    }
                    #endregion
                }
                else
                {
                    Logger.Info("非微信--登录失败1");
                    //跳转到登录页面
                    filterContext.Result = new RedirectResult("~/Login/Index");
                }
            }
            base.OnActionExecuting(filterContext);
        }