나는 우리의 프로덕션 서버에서 리디렉션 순환을보고하고 필터 :이 질문에 비슷한 알고ASP.NET MVC 액션 우리는 컨트롤러 클래스에서 다음 속성을 사용하도록 설정하면 리디렉션 루프
public class TestRedirectHttpsAttribute : RedirectHttpsAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (Convert.ToBoolean(ConfigurationManager.AppSettings["TestSecureEnabled"] ?? bool.FalseString))
{
base.OnAuthorization(filterContext);
}
}
}
public class RedirectHttpsAttribute : FilterAttribute, IAuthorizationFilter
{
public virtual void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
if (!filterContext.HttpContext.Request.IsSecureConnection)
{
UriBuilder uriBuilder = new UriBuilder(filterContext.HttpContext.Request.Url);
uriBuilder.Scheme = "https";
uriBuilder.Port = -1; // Don't inject port
filterContext.Result = new RedirectResult(uriBuilder.ToString());
}
}
}
-Redirect loop with SSL action filter in ASP.NET MVC을하지만, 2 월에 질문을 받았고 누군가가 더 나은 해결책을 얻길 바랍니다. 링크의 질문에 대한 해결책은 컨트롤러의 작업에서 리디렉션하는 것이지만 모든 작업을 HTTPS로 리디렉션하려면 사용자 지정 FilterAttribute를 컨트롤러에 적용하는 대신 각 작업을 호출해야합니다.
참고 :이 코드는 더미 SSL 인증서를 사용하는 개발 환경에서 작동합니다.
나는 막대기의 끝이 잘못되었을 수도 있고 완전히 다른 것을해야 할 수도 있습니다. 그렇다면 제 사과를 받아주십시오.