0

asp.net 4.0 Web アプリケーションの特定のページに https を使用するという単純な要件があります。実装を確認するために、単純な asp.net 4.0 アプリを IIS 7 にデプロイしました。このアプリは、web.config フラグに基づいて https 経由で default.aspx ページを securepage.aspx にリダイレクトするようにコーディングされています。

protected void Page_Load(object sender, EventArgs e)
    {
        Uri requestUri = Page.Request.Url;
        UriBuilder builder = new UriBuilder("https", requestUri.Host, requestUri.Port, "SecurePage.aspx");
        string secureUrl = builder.Uri.ToString();

        if (bool.Parse(ConfigurationManager.AppSettings["UseSecure"]))
        {
            Response.Redirect(secureUrl, true);
        }
        else
        {
            Response.Write(secureUrl);
        }
    }

しかし、このアプリを IIS 7 に展開して default.aspx ページを読み込むと、「Internet Explorer は Web ページを表示できません」と表示されます。しかし、config フラグをオフにすると、ページが正しく表示されます。アプリには、ポート 82 での http バインディングと、ポート 444 での https があります。

私たちが間違っているところを誰か教えてくれませんか。

4

2 に答える 2

1

httpsに入力すると、ブラウザーは443444 ではなくポートに移動するため、カスタム ポートに移動するには、次のように入力する必要があります。

UriBuilder builder = new UriBuilder("http", requestUri.Host, 444, "SecurePage.aspx");
于 2012-06-19T14:58:41.587 に答える
1

80 を返す requestUri.Port 経由で現在のリクエストのポートを使用しています。代わりに 444 をハードコードする必要があります。

UriBuilder builder = new UriBuilder("https", requestUri.Host, 444, "SecurePage.aspx");

または、ポートが変更された場合は、構成可能な変数を使用します。

于 2012-06-19T14:58:44.363 に答える