c# - 执行Response.Redirect时如何修改Request.Headers ["Referer"]?

标签 c# asp.net http-headers

在我目前正在开发的 Web 应用程序(C#、ASP.NET)中,Request.Headers["Referer"] 中的值可以确定自定义样式等内容。我创建了一个带有下拉菜单的自定义页面来测试此功能。 So when the selected index changes, the value selected should be set in the Request.Headers["Referer"] then will be redirected (Response.Redirect), the receiving page will then pick up the value in Request.Headers["Referer"] 并相应地调整样式。但是我无法为 Request.Headers["Referer"] 设置值。有可能吗?

Website 1 sets the value in Request.Headers["Referer"], e.g. www.xyz.com and before doing Response.Redirect to www.website2.com

Website 2 picks up value in Request.Headers["Referer"], in this case www.xyz.com and do what it needs to do, i.e. styling etc.

最佳答案

试试这个代码

在网站 1 中,将这段代码放在 Button Click 中

        HttpRequest equest =  this.Request;
        NameValueCollection headers = Request.Headers;

        //get a type
        Type t = headers.GetType();         

        t.InvokeMember("MakeReadWrite", BindingFlags.InvokeMethod | 
              BindingFlags.NonPublic | BindingFlags.Instance, null, headers, null);
        t.InvokeMember("InvalidateCachedArrays", BindingFlags.InvokeMethod |
              BindingFlags.NonPublic | BindingFlags.Instance, null, headers, null);

        System.Collections.ArrayList item = new System.Collections.ArrayList();
        item.Add("YOUR_STYLE_NAME");
        t.InvokeMember("BaseAdd", BindingFlags.InvokeMethod | BindingFlags.NonPublic |
              BindingFlags.Instance, null, headers, new object[] { "CUSTOM_STYLE", item });

        t.InvokeMember("MakeReadOnly", BindingFlags.InvokeMethod |
              BindingFlags.NonPublic | BindingFlags.Instance, null, headers, null);

        Server.Transfer("Default.aspx");

并在网站 2 中将此代码放入阅读样式

        var bnymuser = Request.Headers["CUSTOM_STYLE"];

关于c# - 执行Response.Redirect时如何修改Request.Headers ["Referer"]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3455863/

相关文章:

c# - 具有大量数据的客户端缓存 DropDownList?

c# - 将多个对象自动映射到一个对象

C# 调用 REST 服务调用并提供证书

c# - 如何获取数据表各列的绝对值之和

asp.net - 如何在 asp.net 中按下按钮后刷新 Gridview

http - 我应该自己设置哪些http状态码,在什么情况下?

asp.net-mvc - 刷新与输入 URL 和按 Enter 键之间有什么不同?

c# - 如何改变关系数据库思维来设计 Azure 表存储数据存储?

c# - 快速估计子文件夹的数量

apache - 在Apache中处理CORS预检请求