2013-03-05 4 views
1

사용자가 (폼 인증을 통해) 인증 된 경우 IIS에서 URL 다시 쓰기 2를 사용하여 요청한 URL의 https 버전으로 리디렉션하는 방법을 알고있는 사람.사용자가 URL 재 작성 2로 로그인 할 때 HTTPS로 리디렉션

는 기본적으로 난 그냥 내가 폼 인증 쿠키에 대한 requireSSL 특성을 설정할 수 있습니다 알고

. 사용자가 HTTPS를 통해 로그인하고이 로그인 한 동안 자신의 전체 세션이 HTTPS에 남아 있도록하려면, 그래서 ' 물론 그렇게하고 있지만 http에서 https 로의 리디렉션도 원할 것입니다.

나는 우리가 대신 내가 원하는 것을 달성하기 위해,하지만 우리는 URL을 다시 작성 사용하여 Web.config이를 정의 할 수 있습니다 경우가 정돈 (및 성능에 대한 가능성이 더 나은) 될 Global.asax에 코드를 넣을 수 있습니다 생각 2.

답변

1

ASP.NET MVC를 사용하는 경우이 액션 필터가 도움이 될 수 있습니다. 크레딧은 원래 작성자에게 가야합니다.

//http://weblogs.asp.net/dwahlin/archive/2009/08/25/requiring-ssl-for-asp-net-mvc-controllers.aspx 
public class RequiresSsl : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     var req = filterContext.HttpContext.Request; 
     var res = filterContext.HttpContext.Response; 

     //Check if we're secure or not and if we're on the local box 
     if (!req.IsSecureConnection && !req.IsLocal) 
     { 
      if (req.Url != null) 
      { 
       var builder = new UriBuilder(req.Url) { Scheme = Uri.UriSchemeHttps, Port = 443, Host = req.Url.Host.StartsWith("www.", StringComparison.OrdinalIgnoreCase) ? req.Url.Host : "www." + req.Url.Host }; 
       res.Redirect(builder.Uri.ToString()); 
      } 
     } 
     base.OnActionExecuting(filterContext); 
    } 
} 
+0

감사합니다. 케인, 죄송합니다. MVC가 아닌 ASP.NET 웹 양식을 사용하고 있다고 말했어 야합니다. –