При загрузке страницы не удалось распознать Postback после перенаправления с http на https в asp.net - PullRequest
0 голосов
/ 22 декабря 2018

Я работаю над проектом веб-формы, чтобы страницы веб-сайтов загружались через HTTPS.И я использовал код удара в web.config для перенаправления:

<system.webServer>
    <rewrite>
      <outboundRules rewriteBeforeCache="true">
        <rule name="Remove Server header">
          <match serverVariable="RESPONSE_Server" pattern=".+" />
          <action type="Rewrite" value="behooy sanat , BSCo." />
        </rule>
      </outboundRules>
      <rules>
        <rule name="redirect http to https (sapqd)" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
          <match url="*" negate="false" />
          <conditions logicalGrouping="MatchAny">
            <add input="{HTTPS}" pattern="off" />
          </conditions>
          <action type="Redirect" url="Https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
        </rule>
      </rules>
    </rewrite>
    <httpProtocol>
      <customHeaders>
        <remove name="x-Powered-By" />
        <add name="Powered-By" value="Mostooooo" />
        <remove name="X-AspNet-Version" />
      </customHeaders>
    </httpProtocol>
    <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File">
      <remove statusCode="502" subStatusCode="-1" />
      <remove statusCode="501" subStatusCode="-1" />
      <remove statusCode="500" subStatusCode="-1" />
      <remove statusCode="412" subStatusCode="-1" />
      <remove statusCode="406" subStatusCode="-1" />
      <remove statusCode="405" subStatusCode="-1" />
      <remove statusCode="403" subStatusCode="-1" />
      <remove statusCode="404" subStatusCode="-1" />
      <remove statusCode="401" subStatusCode="-1" />
      <error statusCode="401" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
      <error statusCode="404" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
      <error statusCode="403" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
      <error statusCode="405" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
      <error statusCode="406" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
      <error statusCode="412" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
      <error statusCode="500" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
      <error statusCode="501" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
      <error statusCode="502" prefixLanguageFilePath="" path="https://sapqd.sapco.com/404.aspx" responseMode="Redirect" />
    </httpErrors>
    <directoryBrowse enabled="false" />
  </system.webServer>

Но метод pageload () страницы входа в систему выполняется неоднократно, и мы хотим прекратить выполнение определенной части кода, которая предназначена длякапча ко времени Postback думал, что эта часть выполняется дважды, когда работает PostBack.И, наконец, полученный код капчи не совпадает с кодом пользовательского капчи, и поэтому проект входа в систему невозможен.

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        Session["userid"] = txt_user_name.Text;

        if (!IsPostBack)
        {
            //// this part twice run after PostBack
                Captcha();
                Pnl_captcha.Visible = false;

      }

    }
    catch (Exception ex)
    {
        gc.ShowError(ex.ToString(), 1);
    }
}

Все, к чему мы стремимся, это то, что всякий раз, когда мы перенаправляем HTTP на HTTPS, мы будемв состоянии распознать Postback.

...