私は ActionResults のいくつかを保護していますが、それはうまく機能し[RequireHttps]
ています。
他のリンクに移動した後も、人々は https 接続を維持しています。指定した特定のページでのみ https が必要で、それ以外はすべて http が必要です。
私は ActionResults のいくつかを保護していますが、それはうまく機能し[RequireHttps]
ています。
他のリンクに移動した後も、人々は https 接続を維持しています。指定した特定のページでのみ https が必要で、それ以外はすべて http が必要です。
OnActionExecuting
ベースコントローラーを作成して、メソッドをオーバーライドして次のようなことを行うことができます。
protected override void OnActionExecuting(ActionExecutingContext ctx) {
{
bool redirect = true;
if (!ctx.HttpContext.Request.IsSecureConnection) redirect = false;
// Bypass if [RequireHttps] is applied
if (ctx.ActionDescriptor.ControllerDescriptor.GetCustomAttributes
(typeof(RequireHttpsAttribute), true).Length > 0) redirect = false;
if (ctx.ActionDescriptor.GetCustomAttributes
(typeof(RequireHttpsAttribute), true).Length > 0) redirect = false;
if (!redirect)
{
base.OnActionExecuting(ctx);
}
else
{
// Redirect to HTTP
string url = "http://" + ctx.HttpContext.Request.Url.Host
+ ctx.HttpContext.Request.RawUrl;
ctx.Result = new RedirectResult(url);
}
}