2014-12-24 3 views
0

쿼리 문자열 매개 변수와 함께 제공되는 URL에 요청을 보내는 http 처리기를 만들고 싶습니다. url 매개 변수가 백엔드 서버이기 때문에. 사용자가 액세스 할 수 없으므로 프록시 스크립트로 요청을 보내려고합니다.Asp.net mvc 내부 서버에 대한 httpthandler 리디렉션

http://frontendserver?url=http://backendserver?x=1&y=2 

    public class GeolocateRequestHandler : IHttpHandler 
    { 
     public bool IsReusable 
     { 
      get { return true; } 
     } 

     public void ProcessRequest(HttpContext context) 
     { 
      TransferUserIfAuthenticated(new HttpContextWrapper(context)); 
     } 

     private static void TransferUserIfAuthenticated(HttpContextBase context) 
     { 
      if (context.User.Identity.IsAuthenticated) 
      { 
       var url = context.Request.QueryString["url"]; 
       ??? redirect to url (locale lan server) 
      } 
     } 
    } 

.Net WenClient 객체를 통해 수행해야합니까, 아니면 다른 방법이 있습니까?

답변

0

WebClient은 새로운 요청을 작성하고 응답을 받기 위해 사용됩니다.

응답 개체를 사용하여 현재 컨텍스트에서 리디렉션을 만들 수 있습니다.

context.Response.Redirect(url) 

편집

나는 이론적으로 설명 할 것이다하여 정확한 코드를 작동 드릴 수 없습니다.

HttpWebRequest으로 요청하십시오. 응답을 받고 context.Response에 데이터를 다시 작성하십시오.

필요하다면 콘텐츠, 헤더 (내용 유형과 같은), 쿠키를 다시 써야합니다.

var http = (HttpWebRequest)WebRequest.Create("http://example.com"); 
var response = (HttpWebResponse)http.GetResponse(); 
+0

죄송합니다. 답변을 확인하실 수 있도록 질문을 변경했습니다. – barteloma

+0

@bookmarker 내 수정 된 답변 확인 – opewix