コード例 #1
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            _vcManager = VcManager.GetInstance();
            if (Page.IsPostBack)
            {
                return;
            }

            if (!FileConfigManager.Instance.IsFindPassword)
            {
                PageUtils.RedirectToErrorPage("基于安全考虑,找回密码功能已关闭,如需使用请与管理员联系!");
            }
            else if (!SmsManager.IsSmsReady())
            {
                PageUtils.RedirectToErrorPage("短信发送未开启或配置不正确,找回密码功能无法使用,如需使用请与管理员联系!");
            }

            if (FileConfigManager.Instance.IsValidateCode)
            {
                LtlValidateCodeImage.Text =
                    $@"<img id=""imgVerify"" name=""imgVerify"" src=""{PageValidateCode.GetRedirectUrl(_vcManager.GetCookieName())}"" align=""absmiddle"" />";
            }
            else
            {
                PhValidateCode.Visible = false;
            }

            this.LtlPageTitle.Text = "找回密码";
        }
コード例 #2
0
ファイル: PageFindPwd.cs プロジェクト: zr53722/cms
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            _vcManager = VcManager.GetInstance();
            if (Page.IsPostBack)
            {
                return;
            }

            if (!ConfigManager.SystemConfigInfo.IsAdminFindPassword)
            {
                PageUtils.RedirectToErrorPage("基于安全考虑,找回密码功能已关闭,如需使用请与管理员联系!");
            }
            else if (!SmsManager.IsReady() || string.IsNullOrEmpty(ConfigManager.SystemConfigInfo.AdminFindPasswordSmsTplId))
            {
                PageUtils.RedirectToErrorPage("短信验证码发送功能未开启或配置不正确,找回密码功能无法使用,如需使用请与管理员联系!");
            }

            LtlValidateCodeImage.Text =
                $@"<img id=""imgVerify"" name=""imgVerify"" src=""{PageValidateCode.GetRedirectUrl(_vcManager.GetCookieName())}"" align=""absmiddle"" />";

            LtlPageTitle.Text = "找回密码";
        }
コード例 #3
0
ファイル: PageLogin.cs プロジェクト: skotbenben/cms
        protected override bool IsAccessable => true; // 设置本页面是否能直接访问 如果为false,则必须管理员登录后才能访问

        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;              // 如果无权访问页面,则返回空白页
            }
            try
            {
                _vcManager = VcManager.GetInstance(); // 构建验证码实例
                if (Page.IsPostBack)
                {
                    return;
                }

                PhFindPassword.Visible = ConfigManager.SystemConfigInfo.IsFindPassword;

                if (Body.IsQueryExists("error")) // 如果url参数error不为空,则把错误信息显示到页面上
                {
                    LtlMessage.Text = GetMessageHtml(Body.GetQueryString("error"));
                }
                // 判断是否满足系统的黑白名单限制要求,即查看后台是否启用了黑白名单功能,如果启用了判断一下现在访问的IP是否允许访问
                if (RestrictionManager.IsVisitAllowed(ConfigManager.SystemConfigInfo.RestrictionType, ConfigManager.Instance.RestrictionBlackList, ConfigManager.Instance.RestrictionWhiteList))
                {
                    PageUtils.DetermineRedirectToInstaller();      // 判断是否需要安装,如果需要则转到安装页面。

                    if (FileConfigManager.Instance.IsValidateCode) // 根据配置判断是否需要启用验证码
                    {
                        LtlValidateCodeImage.Text =
                            $@"<a href=""javascript:;"" onclick=""$('#imgVerify').attr('src', $('#imgVerify').attr('src') + '&' + new Date().getTime())""><img id=""imgVerify"" name=""imgVerify"" src=""{PageValidateCode.GetRedirectUrl(_vcManager.GetCookieName())}"" align=""absmiddle"" /></a>";
                    }
                    else // IP被限制了,不允许访问后台
                    {
                        PhValidateCode.Visible = false;
                    }
                }
                else
                {
                    Page.Response.Write("<h1>此页面禁止访问.</h1>");
                    Page.Response.Write($"<p>IP地址:{PageUtils.GetIpAddress()}<br />需要访问此页面请与网站管理员联系开通相关权限.</p>");
                    Page.Response.End();
                }
            }
            catch
            {
                // 再次探测是否需要安装或升级
                if (AppManager.IsNeedInstall())
                {
                    PageUtils.Redirect("installer/default.aspx");
                }
                else if (AppManager.IsNeedUpgrade())
                {
                    PageUtils.Redirect("upgrade/default.aspx");
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #4
0
        public void Get(string name)
        {
            var response = HttpContext.Current.Response;

            var code = VcManager.CreateValidateCode();

            if (CacheUtils.Exists($"SiteServer.API.Controllers.V1.CaptchaController.{code}"))
            {
                code = VcManager.CreateValidateCode();
            }

            CookieUtils.SetCookie("SS-" + name, code, DateTime.Now.AddMinutes(10));

            response.BufferOutput = true;                                //特别注意
            response.Cache.SetExpires(DateTime.Now.AddMilliseconds(-1)); //特别注意
            response.Cache.SetCacheability(HttpCacheability.NoCache);    //特别注意
            response.AppendHeader("Pragma", "No-Cache");                 //特别注意
            response.ContentType = "image/png";

            var validateimage = new Bitmap(130, 53, PixelFormat.Format32bppRgb);

            var r      = new Random();
            var colors = Colors[r.Next(0, 5)];

            var g = Graphics.FromImage(validateimage);

            g.FillRectangle(new SolidBrush(Color.FromArgb(240, 243, 248)), 0, 0, 200, 200);                                                          //矩形框
            g.DrawString(code, new Font(FontFamily.GenericSerif, 28, FontStyle.Bold | FontStyle.Italic), new SolidBrush(colors), new PointF(14, 3)); //字体/颜色

            var random = new Random();

            for (var i = 0; i < 25; i++)
            {
                var x1 = random.Next(validateimage.Width);
                var x2 = random.Next(validateimage.Width);
                var y1 = random.Next(validateimage.Height);
                var y2 = random.Next(validateimage.Height);

                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
            }

            for (var i = 0; i < 100; i++)
            {
                var x = random.Next(validateimage.Width);
                var y = random.Next(validateimage.Height);

                validateimage.SetPixel(x, y, Color.FromArgb(random.Next()));
            }

            g.Save();
            var ms = new MemoryStream();

            validateimage.Save(ms, ImageFormat.Png);
            response.ClearContent();
            response.BinaryWrite(ms.ToArray());
            response.End();
        }
コード例 #5
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            try
            {
                _vcManager = VcManager.GetInstance();
                if (!Page.IsPostBack)
                {
                    if (Body.IsQueryExists("error"))
                    {
                        LtlMessage.Text = GetMessageHtml(Body.GetQueryString("error"));
                    }
                    if (RestrictionManager.IsVisitAllowed(ConfigManager.SystemConfigInfo.RestrictionType, ConfigManager.Instance.RestrictionBlackList, ConfigManager.Instance.RestrictionWhiteList))
                    {
                        PageUtils.DetermineRedirectToInstaller();

                        if (FileConfigManager.Instance.IsValidateCode)
                        {
                            LtlValidateCodeImage.Text =
                                $@"<a href=""javascript:;"" onclick=""$('#imgVerify').attr('src', $('#imgVerify').attr('src') + '&' + new Date().getTime())""><img id=""imgVerify"" name=""imgVerify"" src=""{PageValidateCode.GetRedirectUrl(_vcManager.GetCookieName())}"" align=""absmiddle"" /></a>";
                        }
                        else
                        {
                            PhValidateCode.Visible = false;
                        }
                    }
                    else
                    {
                        Page.Response.Write("<h1>此页面禁止访问.</h1>");
                        Page.Response.Write($"<p>IP地址:{PageUtils.GetIpAddress()}<br />需要访问此页面请与网站管理员联系开通相关权限.</p>");
                        Page.Response.End();
                    }
                }
            }
            catch
            {
                if (AppManager.IsNeedInstall())
                {
                    PageUtils.Redirect("installer/default.aspx");
                }
                else if (AppManager.IsNeedUpgrade())
                {
                    PageUtils.Redirect("upgrade/default.aspx");
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var cookieName = Request.QueryString["cookieName"];

            var validateCode = VcManager.CreateValidateCode();

            CookieUtils.SetCookie(cookieName, validateCode, DateTime.Now.AddDays(1));

            Response.BufferOutput = true;                                //特别注意
            Response.Cache.SetExpires(DateTime.Now.AddMilliseconds(-1)); //特别注意
            Response.Cache.SetCacheability(HttpCacheability.NoCache);    //特别注意
            Response.AppendHeader("Pragma", "No-Cache");                 //特别注意
            Response.ContentType = "image/png";
            ValidateCode(validateCode);
        }
コード例 #7
0
        protected override bool IsAccessable => true; // 设置本页面是否能直接访问 如果为false,则必须管理员登录后才能访问

        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;              // 如果无权访问页面,则返回空白页
            }
            try
            {
                _vcManager = VcManager.GetInstance(); // 构建验证码实例
                if (Page.IsPostBack)
                {
                    return;
                }

                PhFindPassword.Visible = ConfigManager.SystemConfigInfo.IsAdminFindPassword;

                if (AuthRequest.IsQueryExists("error")) // 如果url参数error不为空,则把错误信息显示到页面上
                {
                    LtlMessage.Text = GetMessageHtml(AuthRequest.GetQueryString("error"));
                }

                SystemManager.DetermineRedirectToInstaller(); // 判断是否需要安装,如果需要则转到安装页面。

                LtlValidateCodeImage.Text =
                    $@"<a href=""javascript:;"" onclick=""$('#imgVerify').attr('src', $('#imgVerify').attr('src') + '&' + new Date().getTime())""><img id=""imgVerify"" name=""imgVerify"" src=""{PageValidateCode.GetRedirectUrl(_vcManager.GetCookieName())}"" align=""absmiddle"" /></a>";
            }
            catch
            {
                // 再次探测是否需要安装或升级
                if (SystemManager.IsNeedInstall())
                {
                    PageUtils.Redirect(PageInstaller.GetRedirectUrl());
                }
                else if (SystemManager.IsNeedUpdate())
                {
                    PageUtils.Redirect(PageSyncDatabase.GetRedirectUrl());
                }
                else
                {
                    throw;
                }
            }
        }