Элемент управления не инициализирован в Edge / IE в Page_Init () - PullRequest
0 голосов
/ 09 октября 2019

Существует ли другой порядок вызова конструкторов для элементов управления в зависимости от марки браузера?

В моем проекте есть элемент управления DevExpress Captcha, он отображается на странице MyForm.aspx. Когда я открываю приложение в Chrome / Firefox, оно работает нормально, в свойстве Code есть случайная строка, но когда я открываю одну и ту же страницу в Edge / IE, она всегда равна нулю (даже внутри Page_Init), поэтому она всегда возвращает false.

Я подумал, что, возможно, существует другой порядок вызова конструктора для этого элемента управления в зависимости от браузера, что еще может быть причиной того, что этот элемент управления не инициализируется в некоторых браузерах, а другие да?

public partial class MyForm: System.Web.UI.Page
{
    private string CaptchaCode { get; set; }

    protected void Page_Init(object sender, EventArgs e)
    {
        CaptchaCode = Captcha.Code;
    }

    protected void btnPurchaseCardSecurity_Click(object sender, EventArgs e)
    {
        // line breaks added for readability. [ed]
        Captcha.IsValid = string.Equals(Request.Params["Captcha$TB"]
            .Replace('o', '0').Replace('i', 'l'), CptCode,   
            StringComparison.CurrentCultureIgnoreCase);
    }

Сильфон - это управление в aspx

<dx:ASPxCaptcha ID="Captcha" runat="server">
    <ChallengeImage />
</dx:ASPxCaptcha>

1 Ответ

0 голосов
/ 10 октября 2019

Я все еще изо всех сил пытаюсь заставить это работать на Edge / IE, но до сих пор я обнаружил, что вызывает проблему. Компонент DevExpress Captcha может не работать при доступе к странице через HTTP вместо HTTP-протокола IF, если внутри web.config requireSSL задано значение true. Итак, на данный момент все обнаруживается с использованием HTTP, оно просто не передает инициализированное значение captcha UI-сервера в Edge, но это происходит в Chrome и Firefox.

Я не могу получить доступ к сайтуиспользование HTTPS.

ASPxCaptcha не работает с HTTP, когда RequireSSL установлен в web.config

ASPxCaptcha не работает с HTTP, когда RequireSSL установлен вЗначение true в файле web.config, поскольку в этом случае файлы cookie защищены, и ASPxCaptcha не может получить идентификатор сеанса, который в них хранится. Таким образом, в этом случае необходимо использовать HTTPS.

Для всех, у кого есть подобная проблема, перейдите по этой ссылке для других возможных решений: https://www.devexpress.com/Support/Center/Question/Details/KA18582/how-to-resolve-issues-with-aspxcaptcha

Один изчто помогло, так это перейти к свойствам проекта> Web> Серверы и заменить URL-адрес проекта HTTP на HTTPS из URL-адреса проекта. Чем VS попросил меня установить SSL сертификат. Доступ к сайту через https и все работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...