Обратная передача и перенаправление с помощью cloudflare, вызывающие странное поведение

#asp.net #cloudflare

#asp.net #cloudflare

Вопрос:

Мы используем Cloudflare для их DNS и HTTP прокси. Сегодня мы заметили некоторое странное поведение, связанное с обратными отправками и перенаправлениями.

У нас есть главная страница для нашей системы администрирования с текстовым полем и кнопкой. Пользователь вводит идентификатор и нажимает кнопку, а затем мы перенаправляем его на покупку в нашей системе (на этой странице покупки используется та же главная страница).

Вот последовательность событий:

  1. Поиск покупки с идентификатором 123456 (правильно перенаправлен на 123456)
  2. Поиск покупки с идентификатором 123457 (перенаправлен на 123456)
  3. Поиск покупки с идентификатором 234567 (перенаправлено правильно 234567)
  4. Поиск покупки с идентификатором 123457 (перенаправлен на 123456)

Мы впервые попробовали это на локальном и не смогли воспроизвести поведение. Затем мы попытались проверить СООБЩЕНИЕ, чтобы увидеть, отправили ли мы неверное значение. После открытия Fiddler для проверки запроса проблема полностью исчезла. Затем я закрыл Fiddler и использовал Chrome tools для проверки сообщения и увидел, что отправляется правильный идентификатор.

Затем мы подумали, что это может быть как-то связано с Cloudflare, и поэтому отключили HTTP-прокси Cloudflare. После этого все работало так, как ожидалось.

Кто-нибудь еще сталкивался с этим раньше, и если да, то что мы можем сделать, чтобы исправить проблему? Ниже приведен мой код:

Код кнопки:

 <asp:Panel runat="server" DefaultButton="btnQuickJumpPurchase" class="row hide-for-small">
<div class="four columns offset-by-two">

    <asp:TextBox ID="txtQuickJumpPurchase" CssClass="left nine" placeholder="Purchase ID" runat="server"></asp:TextBox>
    <asp:Button ID="btnQuickJumpPurchase" runat="server" Text="Go" OnClick="btnQuickJumpPurchase_Click" CssClass="right button green small radius" />
</div>
<div class="two columns"></div> 
  

Обработчик события OnClick

 protected void btnQuickJumpPurchase_Click(object sender, EventArgs e)
{            
    int quickPurchaseId = 0;
    int.TryParse(txtQuickJumpPurchase.Text, out quickPurchaseId);
    if (quickPurchaseId == 0)
        HttpContext.Current.Response.Redirect("/admin");
    else
        HttpContext.Current.Response.Redirect($"/admin/purchases/purchase.aspx?id={quickPurchaseId}");
}
  

Комментарии:

1. Мы сталкиваемся с тем же поведением здесь. И мы пока не имеем понятия. При отключении cloudflare все в порядке, при включении перенаправления работает только после попытки опубликовать 3 раза или около того. Также, как только он перенаправляет его правильно, он продолжает перенаправлять правильно.

2. @Saab это только начало происходить с вами сейчас, или вы испытывали это с момента перехода на Cloudflare?

3. Вчера это сработало. И сегодня мы начинаем получать жалобы.

4. То же самое с нами. Вы случайно не размещены в Azure?

5. Проблема, с которой мы столкнулись, была решена с помощью cloudflare. Так что, возможно, это тоже решено для вас.