C# 读取和写入HTTP头

C# 读取和写入HTTP头,c#,asp.net,C#,Asp.net,目前我有一个web应用程序,有两个页面,登录和默认 我一直在孜孜不倦地尝试编写2x GUID,当登录页面上的代码中执行登录过程时,这些GUID将返回到HTTP头中。然后我想在默认页面的页面加载中读取这些内容 我对C#中的HTTP头相当缺乏经验,我在前面尝试过从登录添加值,但没有成功 Request.Headers.Add("GUID", strGUID); Response.Headers.Add("GUID", strGUID); 要检索我尝试使用的默认页面上的值 strGUID = Res

目前我有一个web应用程序,有两个页面,登录和默认

我一直在孜孜不倦地尝试编写2x GUID,当登录页面上的代码中执行登录过程时,这些GUID将返回到HTTP头中。然后我想在默认页面的页面加载中读取这些内容

我对C#中的HTTP头相当缺乏经验,我在前面尝试过从登录添加值,但没有成功

Request.Headers.Add("GUID", strGUID);
Response.Headers.Add("GUID", strGUID);
要检索我尝试使用的默认页面上的值

strGUID = Response.Headers.Get("GUID");
Response.Headers.Clear();
然后,为了最终清除我堆积在其中的所有自定义垃圾的标题,我尝试使用

strGUID = Response.Headers.Get("GUID");
Response.Headers.Clear();

我一直在互联网上四处寻找,但我似乎找不到任何关于这方面的教程,也找不到任何关于如何实现类似任务的分步说明。

由于HTTP是一种无状态协议,因此无法使用HTTP头在请求之间共享数据。我看不出您的代码本身有任何错误,但是没有规则规定在一个响应(login.aspx)中发送到客户端的HTTP头应该在下一个请求(default.aspx)中发送回服务器。即使在执行从login.aspx到default.aspx的重定向时也是如此,因为重定向本身与随后的页面视图是分开的

您可能正在寻找的是可支持多个请求的存储。为此,您可以使用cookies在浏览器中存储值:

// Set in login.aspx
Response.Cookies.Add(new HttpCookie("Guid", Guid.NewGuid())

// Read in default.aspx
HttpCookie token = Request.Cookies["Guid"];
…或会话存储,以在服务器上存储值

// Set in login.aspx
Session["Guid"] = Guid.NewGuid();

// Read in default.aspx
Guid token = (Guid) Session["Guid"];

您可以使用类似于检查HTTP通信的工具来更好地了解HTTP头是如何传输的。

由于HTTP是无状态协议,因此您不能使用HTTP头在请求之间共享数据。我看不出您的代码本身有任何错误,但是没有规则规定在一个响应(login.aspx)中发送到客户端的HTTP头应该在下一个请求(default.aspx)中发送回服务器。即使在执行从login.aspx到default.aspx的重定向时也是如此,因为重定向本身与随后的页面视图是分开的

您可能正在寻找的是可支持多个请求的存储。为此,您可以使用cookies在浏览器中存储值:

// Set in login.aspx
Response.Cookies.Add(new HttpCookie("Guid", Guid.NewGuid())

// Read in default.aspx
HttpCookie token = Request.Cookies["Guid"];
…或会话存储,以在服务器上存储值

// Set in login.aspx
Session["Guid"] = Guid.NewGuid();

// Read in default.aspx
Guid token = (Guid) Session["Guid"];

您可以使用诸如检查HTTP流量之类的工具来更好地了解HTTP头是如何传输的。

您到底想做什么?听起来您需要一个地方来存储一个请求的值。为此,我建议查看基本上我正在尝试在登录页面的标题中放置一些数据(令牌/GUID),以便在默认页面的pageload中检查其有效性,并在无效时重定向用户。您到底想做什么?听起来您需要一个地方来存储一个请求的值。为此,我建议查看以下内容:我试图在登录页面的标题中放置一些数据(令牌/GUID),以便在默认页面的pageload中检查其有效性,并在无效时重定向用户。