1

サーバーのルートに SSL をインストールしました。コードの背後にあるコードが、特定の検証後に安全なページにリダイレクトされることになっているページがあります。リダイレクトコードは次のとおりです。

switch (PageBase2.GetParameterValue("Environment")) //Retrieves App Setting named Environment from web.config
            {
                case "Server":
                    strURL = @"https://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx";
                    break;
                case "Local":
                    strURL = @"http://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx";
                    break;
                default:
                    strURL = @"https://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx";
                    break;
            }
            Response.Redirect(strURL, false);

しかし、IIS によって提供されたページは安全ではありません。Firebug コンソールを調べたところ、クライアントはhttps://server/checkout/payment.aspxに対して get 要求を行っているように見えますが、IIS はhttp://server/checkout/payment.aspx に対して302 で応答しています。何が原因である可能性があるかについて。ページに SSL を強制しようとしましたが、403.4 エラーが発生して機能しません。(このリソースを表示するには SSL が必要です。) そして、接続が Request.IsSecureConnection を使用して保護されていない場合に、リダイレクト ロジックを削除し、支払いページをその SSL バージョンにリダイレクトするようにコーディングすると、エンドレス リダイレクト ループが発生します。 IIS は、302 なしでは安全なバージョンを提供しません。何かアイデアはありますか?

4

1 に答える 1

0

特定のWebサイトにSSLが適用されている、IISの適切な構成がないようです。

httpsリンクを介して静的リソース、画像、またはhtmlファイルにアクセスしようとすると、これをテストできます。それもリダイレクトされる場合は、IIS構成を調べます。

于 2009-06-17T14:26:06.863 に答える