私はASP.NET MVCサイトの一部でhttps/sslを強制的に実行します。ここでActionFilterなどの素晴らしいソースが見つかりました:http://blog.tylergarlick.com/index.php/2009/07/mvc-redirect-to-http-and-https/HttpContext.Request.Urlがアドレスバーの内容と一致しないのはなぜですか?
私はActionFilterを有効にするたびに、私はリダイレクトループに終わります。問題は、アドレスバーにhttps://www.mysite.com/と入力すると、request.urlは常にhttp://www.mysite.com/となります。
アクションフィルタのコードは以下の通りですが、私が知っている限り、標準の設定を超えて、URLの書き換え、リダイレクト、カスタムルーティングやURLの変更は行っていません。これが起こっている可能性のある一般的な/珍しい理由や回避策や修正がありますか?このサイトは現在NetworkSolutionsでホストされています - IIS設定に関連する可能性はありますか?どんな援助も高く評価されるだろう。
public class RedirectToHttps : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Helpers just so I don’t have to type so much
var request = filterContext.HttpContext.Request;
var response = filterContext.HttpContext.Response;
// Make sure we’re in https or local
if (!request.IsSecureConnection && !request.IsLocal)
{
string redirectUrl = request.Url.ToString().Replace("http:", "https:");
response.Redirect(redirectUrl);
}
base.OnActionExecuting(filterContext);
}
}
また、MVC先物のRequireSSL属性を使用して同じリダイレクトループが発生しました –