好的,所以我想强制https / ssl部分我的ASP.NET MVC网站。在这里找到了很多很棒的资源,包括ActionFilter:http://blog.tylergarlick.com/index.php/2009/07/mvc-redirect-to-http-and-https/
每当我启用ActionFilter时,我都会进入重定向循环。问题是,如果我在地址栏中输入 https ://www.mysite.com/,则request.url始终等于 http ://www.mysite .COM /.
动作过滤器的代码如下所示,据我所知,我没有进行任何网址重写,重定向,自定义路由或修改超出标准设置的网址。是否有任何常见/不常见的原因可能发生这种情况和/或任何变通方法或修复方法?该网站目前在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);
}
}
答案 0 :(得分:3)
即使您没有进行任何明确的URL重写,它也是由ASP.NET MVC引擎完成的。
您可以使用HttpContext.Request.RawUrl