コード例 #1
0
ファイル: BaseWebController.cs プロジェクト: hzl091/BrnShop-1
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            //不能应用在子方法上
            if (filterContext.IsChildAction)
            {
                return;
            }

            //商城已经关闭
            if (WorkContext.ShopConfig.IsClosed == 1 && WorkContext.AdminGid == 1 && WorkContext.PageKey != "/account/login" && WorkContext.PageKey != "/account/logout")
            {
                filterContext.Result = PromptView(WorkContext.ShopConfig.CloseReason);
                return;
            }

            //当前时间为禁止访问时间
            if (ValidateHelper.BetweenPeriod(WorkContext.ShopConfig.BanAccessTime) && WorkContext.AdminGid == 1 && WorkContext.PageKey != "/account/login" && WorkContext.PageKey != "/account/logout")
            {
                filterContext.Result = PromptView("当前时间不能访问本商城");
                return;
            }

            //当用户ip在被禁止的ip列表时
            if (ValidateHelper.InIPList(WorkContext.IP, WorkContext.ShopConfig.BanAccessIP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //当用户ip不在允许的ip列表时
            if (!string.IsNullOrEmpty(WorkContext.ShopConfig.AllowAccessIP) && !ValidateHelper.InIPList(WorkContext.IP, WorkContext.ShopConfig.AllowAccessIP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //当用户IP被禁止时
            if (BannedIPs.CheckIP(WorkContext.IP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //当用户等级是禁止访问等级时
            if (WorkContext.UserRid == 1)
            {
                filterContext.Result = PromptView("您的账号当前被锁定,不能访问");
                return;
            }

            //判断目前访问人数是否达到允许的最大人数
            if (WorkContext.OnlineUserCount > WorkContext.ShopConfig.MaxOnlineCount && WorkContext.AdminGid == 1 && (WorkContext.Controller != "account" && (WorkContext.Action != "login" || WorkContext.Action != "logout")))
            {
                filterContext.Result = PromptView("商城人数达到访问上限, 请稍等一会再访问!");
                return;
            }
        }
コード例 #2
0
ファイル: Receiver.cs プロジェクト: Cendrb/octo-sender
 private void NamePingerStart()
 {
     try
     {
         namePingerListener.Start();
         try
         {
             while (Running)
             {
                 TcpClient client = namePingerListener.AcceptTcpClient();
                 if (BannedIPs.Contains((client.Client.RemoteEndPoint as IPEndPoint).Address.ToString()) && Properties.Settings.Default.BlindBannedContacts)
                 {
                     client.Client.Send(Helpers.GetBytes(StaticPenises.BannedRefuseName, sizeof(char) * 128));
                 }
                 else
                 {
                     client.Client.Send(Helpers.GetBytes(Name, sizeof(char) * 128));
                 }
                 Thread.Sleep(100);
                 client.Close();
             }
         }
         catch (SocketException e)
         {
             if (Running)
             {
                 Console.WriteLine(e.Message);
                 Restart();
             }
         }
     }
     catch (SocketException e)
     {
         MessageBox.Show(e.Message + "\nProgram may not be able to receive files.", "Unable to bind to port " + StaticPenises.NamePingPort);
         Console.WriteLine(e.Message + " port " + StaticPenises.NamePingPort);
     }
 }
コード例 #3
0
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            //不能应用在子方法上
            if (filterContext.IsChildAction)
            {
                return;
            }

            //当用户ip不在允许的后台访问ip列表时
            if (!string.IsNullOrEmpty(WorkContext.ShopConfig.AdminAllowAccessIP) && !ValidateHelper.InIPList(WorkContext.IP, WorkContext.ShopConfig.AdminAllowAccessIP))
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }

            //当用户IP被禁止时
            if (BannedIPs.CheckIP(WorkContext.IP))
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }

            //当用户等级是禁止访问等级时
            if (WorkContext.UserRid == 1)
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }

            //如果当前用户没有登录
            if (WorkContext.Uid < 1)
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }

            //如果当前用户不是管理员
            if (WorkContext.AdminGid == 1)
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }

            //判断当前用户是否有访问当前页面的权限
            if (WorkContext.Controller != "home" && !AdminGroups.CheckAuthority(WorkContext.AdminGid, WorkContext.Controller, WorkContext.PageKey))
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("nopermit", "您没有当前操作的权限");
                }
                else
                {
                    filterContext.Result = PromptView("您没有当前操作的权限!");
                }
                return;
            }
        }
コード例 #4
0
ファイル: ToolController.cs プロジェクト: hzl091/BrnShop-1
        private PartUserInfo partUserInfo     = null;                 //用户信息

        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            ip = WebHelper.GetIP();
            //当用户ip不在允许的后台访问ip列表时
            if (!string.IsNullOrEmpty(shopConfigInfo.AdminAllowAccessIP) && !ValidateHelper.InIPList(ip, shopConfigInfo.AdminAllowAccessIP))
            {
                filterContext.Result = HttpNotFound();
                return;
            }
            //当用户IP被禁止时
            if (BannedIPs.CheckIP(ip))
            {
                filterContext.Result = HttpNotFound();
                return;
            }

            //获得用户id
            int uid = ShopUtils.GetUidCookie();

            if (uid < 1)
            {
                uid = WebHelper.GetRequestInt("uid");
            }
            if (uid < 1)//当用户为游客时
            {
                //创建游客
                partUserInfo = Users.CreatePartGuest();
            }
            else//当用户为会员时
            {
                //获得保存在cookie中的密码
                string encryptPwd = ShopUtils.GetCookiePassword();
                if (string.IsNullOrWhiteSpace(encryptPwd))
                {
                    encryptPwd = WebHelper.GetRequestString("password");
                }
                //防止用户密码被篡改为危险字符
                if (encryptPwd.Length == 0 || !SecureHelper.IsBase64String(encryptPwd))
                {
                    //创建游客
                    partUserInfo = Users.CreatePartGuest();
                    ShopUtils.SetUidCookie(-1);
                    ShopUtils.SetCookiePassword("");
                }
                else
                {
                    partUserInfo = Users.GetPartUserByUidAndPwd(uid, ShopUtils.DecryptCookiePassword(encryptPwd));
                    if (partUserInfo == null)
                    {
                        partUserInfo = Users.CreatePartGuest();
                        ShopUtils.SetUidCookie(-1);
                        ShopUtils.SetCookiePassword("");
                    }
                }
            }

            //当用户等级是禁止访问等级时
            if (partUserInfo.UserRid == 1)
            {
                filterContext.Result = HttpNotFound();
                return;
            }

            //如果当前用户没有登录
            if (partUserInfo.Uid < 1)
            {
                filterContext.Result = HttpNotFound();
                return;
            }

            //如果当前用户不是管理员
            if (partUserInfo.AdminGid == 1)
            {
                filterContext.Result = HttpNotFound();
                return;
            }
        }
コード例 #5
0
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            //不能应用在子方法上
            if (filterContext.IsChildAction)
            {
                return;
            }

            ControllerBase ctb = filterContext.Controller;

            string result = WebHelper.GetPostStr();
            NameValueCollection parmas = WebHelper.GetParmList(result);

            WorkContext.postparms = parmas;
            //if (filterContext.ActionDescriptor.ActionName.ToLower() == "existsdrawpd")
            //    Logs.Write("请求参数:" + result);
            //if (result != string.Empty)
            //{
            //}
            //接口验证关闭
            //List<string> actionlist;
            //if (!WebHelper.IsPost())
            //{
            //    actionlist = new List<string>();
            //    actionlist.AddRange(new string[] { "expand", "notice", "help", "download", "dlapp", "flownotify", "down", "message", "getkefuinfo" });

            //    if (!ctb.ToString().Contains("ErrorController") && !actionlist.Contains(filterContext.ActionDescriptor.ActionName.ToLower()))
            //    {
            //        filterContext.Result = APIResult("error", "只支持POST方式请求");
            //        return;
            //    }
            //}
            //else
            //{
            //    NameValueCollection parmas = WebHelper.GetParmList(result);
            //    WorkContext.postparms = parmas;
            //    string account = parmas.Get("account") == null ? Request.Form["account"] : parmas.Get("account");
            //    if (account != null && account != string.Empty)
            //    {
            //        InitUser(account);
            //    }
            //    actionlist = new List<string>();
            //    actionlist.AddRange(new string[] { "sendmsg", "updateuserinfo", "homedata", "advert", "login", "register", "sendsms", "dlapp", "down", "resetpwd", "about" });
            //    //验证IMEI
            //    if (!actionlist.Contains(filterContext.ActionDescriptor.ActionName.ToLower()))
            //    {
            //        // Logs.Write("请求参数:" + parmas.Get("account") + "____" + parmas.Get("imei") + ";" + Request.Form["account"] + "___" + Request.Form["imei"]);
            //        if ((parmas.Get("account") == null || parmas.Get("imei") == null) && (Request.Form["account"] == null || Request.Form["imei"] == null))
            //        {
            //            filterContext.Result = APIResult("error", "缺少请求参数");
            //            return;
            //        }

            //        string imei = parmas.Get("imei") == null ? Request.Form["imei"] : parmas.Get("imei");
            //        string imres = ComMethod.ValidateIMEI(account, imei);
            //        if (imres != string.Empty)
            //        {
            //            filterContext.Result = APIResult("error", imres);
            //            return;
            //        }
            //    }
            //}
            //商城已经关闭
            if (WorkContext.ShopConfig.IsClosed == 1 && WorkContext.AdminGid == 1 && WorkContext.PageKey != "/account/login" && WorkContext.PageKey != "/account/logout")
            {
                filterContext.Result = PromptView(WorkContext.ShopConfig.CloseReason);
                return;
            }

            //当前时间为禁止访问时间
            if (ValidateHelper.BetweenPeriod(WorkContext.ShopConfig.BanAccessTime) && WorkContext.AdminGid == 1 && WorkContext.PageKey != "/account/login" && WorkContext.PageKey != "/account/logout")
            {
                filterContext.Result = PromptView("当前时间不能访问本商城");
                return;
            }

            //当用户ip在被禁止的ip列表时
            if (ValidateHelper.InIPList(WorkContext.IP, WorkContext.ShopConfig.BanAccessIP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //当用户ip不在允许的ip列表时
            if (!string.IsNullOrEmpty(WorkContext.ShopConfig.AllowAccessIP) && !ValidateHelper.InIPList(WorkContext.IP, WorkContext.ShopConfig.AllowAccessIP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //当用户IP被禁止时
            if (BannedIPs.CheckIP(WorkContext.IP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //判断目前访问人数是否达到允许的最大人数
            if (WorkContext.OnlineUserCount > WorkContext.ShopConfig.MaxOnlineCount && WorkContext.AdminGid == 1 && (WorkContext.Controller != "account" && (WorkContext.Action != "login" || WorkContext.Action != "logout")))
            {
                filterContext.Result = PromptView("商城人数达到访问上限, 请稍等一会再访问!");
                return;
            }
        }
コード例 #6
0
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            //不能应用在子方法上
            if (filterContext.IsChildAction)
            {
                return;
            }

            //当用户IP被禁止时
            if (BannedIPs.CheckIP(WorkContext.IP))
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }

            //当用户等级是禁止访问等级时
            if (WorkContext.UserRid == 1)
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }

            //如果当前用户没有登录
            if (WorkContext.Uid < 1)
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }

            if (WorkContext.StoreId < 1)//当前用户不是店长
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("404", "您访问的网址不存在");
                }
                else
                {
                    filterContext.Result = new RedirectResult("/");
                }
                return;
            }
            else if (WorkContext.StoreInfo.State == (int)StoreState.Close)//店铺已经关闭
            {
                if (WorkContext.IsHttpAjax)
                {
                    filterContext.Result = AjaxResult("storeclose", "您的店铺已经关闭");
                }
                else
                {
                    filterContext.Result = PromptView("/", "您的店铺已经关闭");
                }
                return;
            }
        }
コード例 #7
0
ファイル: BaseAppController.cs プロジェクト: xiaoshihr/CMall
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            //不能应用在子方法上
            if (filterContext.IsChildAction)
            {
                return;
            }

            //商城已经关闭
            if (WorkContext.MallConfig.IsClosed == 1 && WorkContext.MallAGid == 1 && WorkContext.PageKey != Url.Action("login", "account") && WorkContext.PageKey != Url.Action("logout", "account"))
            {
                WorkContext.SystemState    = "closemall";
                WorkContext.SystemStateMsg = WorkContext.MallConfig.CloseReason;
                return;
            }

            //当前时间为禁止访问时间
            if (ValidateHelper.BetweenPeriod(WorkContext.MallConfig.BanAccessTime) && WorkContext.MallAGid == 1 && WorkContext.PageKey != Url.Action("login", "account") && WorkContext.PageKey != Url.Action("logout", "account"))
            {
                WorkContext.SystemState    = "banaccesstime";
                WorkContext.SystemStateMsg = "当前时间不能访问本商城";
                return;
            }

            //当用户ip在被禁止的ip列表时
            if (ValidateHelper.InIPList(WorkContext.IP, WorkContext.MallConfig.BanAccessIP))
            {
                WorkContext.SystemState    = "banaccessip";
                WorkContext.SystemStateMsg = "您的IP被禁止访问本商城";
                return;
            }

            //当用户ip不在允许的ip列表时
            if (!string.IsNullOrEmpty(WorkContext.MallConfig.AllowAccessIP) && !ValidateHelper.InIPList(WorkContext.IP, WorkContext.MallConfig.AllowAccessIP))
            {
                WorkContext.SystemState    = "banaccessip";
                WorkContext.SystemStateMsg = "您的IP被禁止访问本商城";
                return;
            }

            //当用户IP被禁止时
            if (BannedIPs.CheckIP(WorkContext.IP))
            {
                WorkContext.SystemState    = "banaccessip";
                WorkContext.SystemStateMsg = "您的IP被禁止访问本商城";
                return;
            }

            //当用户等级是禁止访问等级时
            if (WorkContext.UserRid == 1)
            {
                WorkContext.SystemState    = "banuserrank";
                WorkContext.SystemStateMsg = "您的账号当前被锁定,不能访问";
                return;
            }

            //判断目前访问人数是否达到允许的最大人数
            if (WorkContext.OnlineUserCount > WorkContext.MallConfig.MaxOnlineCount && WorkContext.MallAGid == 1 && (WorkContext.Controller != "account" && (WorkContext.Action != "login" || WorkContext.Action != "logout")))
            {
                WorkContext.SystemState    = "maxonlinecount";
                WorkContext.SystemStateMsg = "商城人数达到访问上限, 请稍等一会再访问";
                return;
            }
        }
コード例 #8
0
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            //不能应用在子方法上
            if (filterContext.IsChildAction)
            {
                return;
            }

            //商城已经关闭
            if (WorkContext.MallConfig.IsClosed == 1 && WorkContext.MallAGid == 1 && WorkContext.PageKey != Url.Action("login", "account") && WorkContext.PageKey != Url.Action("logout", "account"))
            {
                filterContext.Result = PromptView(WorkContext.MallConfig.CloseReason);
                return;
            }
            //判断是否阅读了用户协议
            if (WorkContext.IsReal == 0)
            {
                filterContext.Result = IsRealView();
                return;
            }
            //当前时间为禁止访问时间
            if (ValidateHelper.BetweenPeriod(WorkContext.MallConfig.BanAccessTime) && WorkContext.MallAGid == 1 && WorkContext.PageKey != Url.Action("login", "account") && WorkContext.PageKey != Url.Action("logout", "account"))
            {
                filterContext.Result = PromptView("当前时间不能访问本商城");
                return;
            }

            //当用户ip在被禁止的ip列表时
            if (ValidateHelper.InIPList(WorkContext.IP, WorkContext.MallConfig.BanAccessIP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //当用户ip不在允许的ip列表时
            if (!string.IsNullOrEmpty(WorkContext.MallConfig.AllowAccessIP) && !ValidateHelper.InIPList(WorkContext.IP, WorkContext.MallConfig.AllowAccessIP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //当用户IP被禁止时
            if (BannedIPs.CheckIP(WorkContext.IP))
            {
                filterContext.Result = PromptView("您的IP被禁止访问本商城");
                return;
            }

            //判断目前访问人数是否达到允许的最大人数
            if (WorkContext.OnlineUserCount > WorkContext.MallConfig.MaxOnlineCount && WorkContext.MallAGid == 1 && (WorkContext.Controller != "account" && (WorkContext.Action != "login" || WorkContext.Action != "logout")))
            {
                filterContext.Result = PromptView("商城人数达到访问上限, 请稍等一会再访问!");
                return;
            }

            //判断是否关注了公众号
            if (string.IsNullOrEmpty(WorkContext.Openid))
            {
                filterContext.Result = PromptView("网页错误,请联系管理员");
                return;
            }
        }
コード例 #9
0
ファイル: Receiver.cs プロジェクト: Cendrb/octo-sender
        private void PortListenerStart()
        {
            try
            {
                portCommListener.Start();

                try
                {
                    while (Running)
                    {
                        try
                        {
                            TcpClient client = portCommListener.AcceptTcpClient();

                            IPEndPoint remoteEndpoint = (client.Client.RemoteEndPoint as IPEndPoint);

                            // Abort receiving if banned
                            if (BannedIPs.Contains(remoteEndpoint.Address.ToString()))
                            {
                                Console.WriteLine("Refusing connection because IP " + client.Client.RemoteEndPoint.ToString() + " is banned");
                                client.Client.Send(BitConverter.GetBytes(-1));
                                throw new IPBannedException(remoteEndpoint.Address);
                            }

                            int receivedPort = 1;
                            int finalPort    = 0;

                            while (receivedPort != 0)
                            {
                                byte[] portBuffer = new byte[sizeof(int)];
                                client.Client.Receive(portBuffer);
                                receivedPort = BitConverter.ToInt32(portBuffer, 0);

                                if (receivedPort == 0)
                                {
                                    Tasks.Dispatcher.Invoke(() => StartNewTask(IPAddress.Any, finalPort));
                                }
                                finalPort = 0;

                                bool localFree = false;
                                while (!localFree)
                                {
                                    if (!usedPorts.Contains(receivedPort))
                                    {
                                        client.Client.Send(BitConverter.GetBytes(receivedPort));
                                        finalPort = receivedPort;
                                        localFree = true;
                                    }
                                    else
                                    {
                                        receivedPort++;
                                    }
                                }
                            }
                        }
                        catch (IPBannedException e)
                        {
                            Console.WriteLine(e.Message);
                        }
                    }
                }
                catch (SocketException e)
                {
                    if (Running)
                    {
                        Console.WriteLine(e.Message);
                        Restart();
                    }
                }
            }
            catch (SocketException e)
            {
                MessageBox.Show(e.Message + "\nProgram may not be able to receive files.", "Unable to bind to port " + StaticPenises.MainPort);
                Console.WriteLine(e.Message + " port " + StaticPenises.MainPort);
            }
        }