【问题标题】:Asp.net Permanent redirection Body,Path,QueryString,MethodAsp.net 永久重定向 Body,Path,QueryString,Method
【发布时间】:2013-02-08 14:48:11
【问题描述】:

在我的场景中。

我想将所有请求重定向到另一个包含路径、查询字符串、方法、内容的域

示例 一些用户向我的域发送请求。

POST www.mydomain.com/service?id=5
HEADER { 
token:securityToken
UserAgent: Chrome
Accept: application/json
}
BODY
{
Content lorem ipsum
}

我将检查一些参数并更改标头中的令牌。

然后

我想将此请求发送到另一个域。

POST www.anotherdomain.com/service?id=5
HEADER {
token:newsecurityToken
UserAgent: Chrome
Accept: application/json
}
BODY
{
Content lorem ipsum
}

终于

用户将得到另一个域的响应。有可能吗?

服务器:Windows 服务器 2008 .Net 框架:4.0

谢谢

【问题讨论】:

  • 这与节流有什么关系?
  • mydomain 将限制另一个域的请求。

标签: c# asp.net


【解决方案1】:

如果您想让请求通过您的域返回,最好的办法是向外部域发出您自己的请求。我会提供有关如何操作的更多详细信息,但我不知道您使用的是什么版本的 .net。这是一篇概述方法的帖子。

Relaying a request in asp.net (Forwarding a request)

它基本上说创建一个新的WebRequest,设置相关属性,获取响应,并将响应中的信息发送回用户。

我觉得我不得不问这个问题,你确定你不是在尝试网络钓鱼或其他什么吗?转念一想,没关系。 ;)

更新:

由于您不需要它通过您的域,我建议使用 301 重定向。这是一个帖子,有人在开始请求中这样做

301 redirect in asp.net 4.0

void Application_BeginRequest(object sender, EventArgs e) 
{
    // Code that runs on every request
    if (HttpContext.Current.Request.Url.ToString().ToLower().Contains("http://website.net"))
    {
        HttpContext.Current.Response.Status = "301 Moved Permanently";
        HttpContext.Current.Response.AddHeader("Location", Request.Url.ToString().ToLower().Replace("http://website.net", "http://www.website.net"));
    }
}

请注意,如果没有任何复杂的逻辑来确定您是否要重定向,这篇文章还提供了一种通过在 web.config 中重写 url 的方法。

【讨论】:

  • 感谢您的回答。这个话题对我有帮助。我可以在 global.asax > begin_request 中使用该代码吗?但是缺少路径和查询字符串。我可以将此属性添加到请求中。并且Framework版本是4.0,Request不必通过我的域回来。
  • 如果它不必通过您的域返回,那么我绝对只会 301 重定向它们
  • 审核请求后我该怎么做?我不应该使用 IIS 重定向。
  • 我尝试使用 301 重定向。但它将发布请求转换为获取请求。并且没有请求正文和自定义标头。 :(
  • 我解决了我的问题。解决方案是在第一个 linq 上 @parKing 共享的内容(在 Asp.net 中中继请求)
【解决方案2】:

只是抛出一个想法,因为我以前从未见过这种方法,你有什么理由不能使用 SOAP Web 服务来完成这个?

pass values to an object to webservices webmethod C#

它们或多或少是为这种类型的东西创造的,会让你的生活变得更轻松。否则,您可以使用 URL 参数

Asp.net adding parameter to url string

或者,只需适当地使用 POST 和 GET 请求传递值。 POST 到域 B 并有一个侦听器等待解析这些值的 POST。我会选择网络服务,它们比看起来更容易。

【讨论】:

  • 都没有,有类似 Facebook API 的 API。我有很多使用这个 API 的客户项目。所以,我需要审核这个客户项目,比如读取数据限制、写入数据限制。我会接受所有请求,然后在审核后发送到 facebook API。
  • 很有趣,让我们看看我是否理解正确。 FB API > 客户端应用程序 > 你 > FB API?
  • 是的,你是对的。 myAPI 应该在 myclientprojects 和 facebookAPI 之间。 MyAPI 将控制一切。
猜你喜欢
  • 2012-02-24
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 2014-09-24
  • 2012-03-15
相关资源
最近更新 更多