1

我正在用 c# 编写一个授权管理模块。凭据将从 http 标头中提取。我的问题是:我只定义了 http 标头的外观(txt 文件)。所以我需要在代码中准备标题进行测试,(在default.aspx的标题中添加键和值):

Response.AppendHeader("contractualData", "03346-b0-t-vg");
Response.AppendHeader("Location", "Default.aspx");
Response.Redirect("page2.aspx");

并且比当我阅读 page2.aspx 页面加载中的标题时

Request.Headers["contractualData"];

我看不到新添加的键和值。(我可以看到它在 IEWatch 的响应标头中,但我无法使用 request.headers 读取它。我也尝试过使用 Response.AddHeader 或 Response.Headers.Add。同样的行为!) 我应该怎么办?

一般来说,我如何准备自定义标头并使用该标头测试我的代码?

4

2 回答 2

1

我找到了解决方案。创建请求标头并发布它。以下代码有效:

protected void Page_Load(object sender, EventArgs e)

        {


            string path = Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/";

            myRedirect(path + "TestRedirectTo.aspx", "test", "testValue");

        }

        protected void myRedirect(string url, string headerName, string headerValue)

        {

            Response.Clear();

            System.Net.WebRequest request = System.Net.WebRequest.Create(url);

            request.Headers.Add(headerName, headerValue);

            System.Net.WebResponse response = request.GetResponse();

            System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);


            string content = sr.ReadToEnd();

            sr.Close();

            Response.Write(content);

            sr.Close();

            Response.End();

        }
于 2012-10-05T16:28:17.250 回答
0

除非我让事情倒退——在发送页面请求中用于发送标题。在接收页面请求时应该使用读取它们。

于 2012-10-04T13:36:12.060 回答