MVC アプリケーションで HTTP を HTTPS にリダイレクトする方法 (IIS7.5) 質問する

MVC アプリケーションで HTTP を HTTPS にリダイレクトする方法 (IIS7.5) 質問する

HTTPサイトをHTTPSにリダイレクトする必要があり、以下のルールを追加しましたが、使用しようとすると403エラーが発生します。http://www.example.com入力すると問題なく動作しますhttps://www.example.comブラウザで。

<system.webServer>
    <rewrite>
        <rules>
            <rule name="HTTP to HTTPS redirect" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                </conditions>
                <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

ベストアンサー1

コードで実行できます:

グローバル.asax.cs

protected void Application_BeginRequest(){
    if (!Context.Request.IsSecureConnection)
        Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
}

または、同じコードをアクション フィルターに追加することもできます。

public class SSLFilter : ActionFilterAttribute {

    public override void OnActionExecuting(ActionExecutingContext filterContext){
        if (!filterContext.HttpContext.Request.IsSecureConnection){
            var url = filterContext.HttpContext.Request.Url.ToString().Replace("http:", "https:");
            filterContext.Result = new RedirectResult(url);
        }
    }
}

おすすめ記事