좋아, 그래서 내 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을 다시 작성, 리디렉션, 사용자 정의 라우팅 또는 표준 설정 이상으로 수정하지는 않습니다. 이것이 일어날 수있는 일반적인/흔치 않은 이유 및/또는 해결 방법이나 수정 사항이 있습니까? 이 사이트는 현재 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);
}
}
으로 원래 URL을 검색 할 수도 있습니다. MVC 미래의 RequireSSL 속성을 사용하여 동일한 리디렉션 루프가 발생했습니다. –