2012-04-17 126 views
2

敢肯定我知道这个问题的答案之一,但要确保我不会失去了一些东西......你可以设置HTTP标头发布

运行ASP.NET 4.0之前,并有我需要的请求将用户发送到第三方应用程序,但在此之前设置HTTP标头值。这将是一个请求标题。我可以将Response Header设置为没有问题,但由于集合是只读的,因此无法使用Request标头执行此操作。从本质上讲,过程如下:

  1. 用户点击按钮开始转移到第三方应用程序
  2. 页面回和我们抢用户信息 - 在这一点上,我需要设置页眉
  3. 问题一Response.Redirect并将它们发送到第三方应用程序。

注意:我没有卡在Response.Redirect;我可以将表单更改为发布到第三方应用程序,只是作为转移用户的方式,没关系。

我相信我可以设置一个IIS重写规则来设置标题(基于这篇文章:http://learn.iis.net/page.aspx/686/setting-http-request-headers-and-iis-server-variables/),但我不想走这条路线,因为标题值将包含一个用户标识,我宁愿不公开对用户来说 - 即使是短暂的一刻。我当然明白,即使是一个标题也不会隐藏,因为有人可以检查该页面,但我并不担心这一点。

任何想法将是一个很大的帮助。

感谢, 瑞安

回答

0

如何:

using System.Net; 

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com"); 
req.Headers.Add(new HttpRequestHeader(), "my header content"); 
+0

Widor - 感谢,将工作设置了头,但关键的是,我不是简单地解析响应 - 我需要发用户访问该页面。这是一个完整的报告应用程序,因此用户将被发送到该应用程序并保持一点;不是简单地请求一个页面并返回到我们的应用程序 – 2012-04-17 10:41:54

+0

好的,那么你需要把他们在上面步骤1中产生的Request请求用于'req'对象。然后你可以使用'Server.Transfer'将整个批量转发到新的位置。 – Widor 2012-04-17 10:50:39

+0

Server.Transfer采用虚拟路径,因此只能在同一应用程序内传输时才能工作 - 我无法将用户发送到第三方站点。 – 2012-04-17 11:15:21