Asp.net MVC httpthandler 重定向到内部服务器
本文关键字:内部 服务器 重定向 httpthandler net MVC Asp | 更新日期: 2023-09-27 18:35:15
我想创建一个 http 处理程序,将请求发送到带有查询字符串参数的 url。因为 url 参数是后端服务器。用户无法访问它,所以我想使用代理脚本发送请求。
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 对象还是有其他简短的方法?
WebClient
用于创建新请求并获取响应。
您可以使用其响应对象在当前上下文中进行重定向。
context.Response.Redirect(url)
编辑
我不能给你确切的工作代码,我会在理论上解释。
使用 HttpWebRequest
执行请求。获取响应并将数据重写为 context.Response
。
如果需要,您必须重写内容,标头(如内容类型),cookie。
var http = (HttpWebRequest)WebRequest.Create("http://example.com");
var response = (HttpWebResponse)http.GetResponse();