作者:juxiu小妹_895 | 来源:互联网 | 2023-08-14 21:41
C#–HttpClient没有发送任何cookie我正在开发两个网站www.web1.com和www.web2.com。在web1中,我保存了一个httpcookie,
C# – HttpClient没有发送任何COOKIE
我正在开发两个网站www.web1.com和www.web2.com。 在web1中,我保存了一个http COOKIE,如下所示
HttpCOOKIE AuthCOOKIE = new HttpCOOKIE(AppConstants.COOKIE.AUTH_COOKIE); AuthCOOKIE.Path = "/"; AuthCOOKIE.Value = "value1"; Response.COOKIEs.Add(AuthCOOKIE);
现在我想要的是在第二个网站即web2中读取这个COOKIE。 我正在尝试使用HttpClient读取它,如下所示
HttpClientHandler handler = new HttpClientHandler(); handler.COOKIECOntainer= new COOKIEContainer(); HttpClient client = new HttpClient(handler); respOnse= client.GetAsync("http://www.web1.com").Result; var COOKIEs = COOKIEs.GetCOOKIEs(new Uri("http://www.web1.com"));
这不会返回任何COOKIE,也可以通过Fiddler进行检查。 但是,如果我直接打开www.web1.com并检查提琴手,那么它会发送COOKIE。
请查看我缺少的内容,以便不从httpclient返回COOKIE。
谢谢,
SB
不确定这是否适用于您的情况,但AuthCOOKIE.Domain = "IP/Domain";
应该为你做的工作。
说过其他可能感兴趣的其他领域的查询字符串和页面post等其他替代方案。
您无法获取或设置其他域的COOKIE。 这将是一个巨大的安全问题。 (你想让我在我的网站上阅读你网站的COOKIEs吗?)
一些相关的post:
- 在1个站点上为另一个站点创建一个asp.net认证COOKIE
- 我需要从浏览器中获取所有COOKIE
- 使用跨域创建COOKIE
- 跨域COOKIE
更新:一点澄清:作为服务器 ,您无法在客户端上获取或设置其他域的COOKIE,这是您想要做的。 作为客户端 ,您可以修改/删除服务器为您设置的COOKIE。
-
在您的示例中,您的服务器端代码正在向web1.com发出请求。 您不会为随机客户端获取COOKIE。 客户端完全不参与上面的代码。
-
如果我访问web1.com并且您设置了一个名为“username”的COOKIE,其值为“bob”,我可以作为客户端修改此COOKIE,使其值为“admin”,然后可能拥有您网站的管理员权限,取决于您处理COOKIE的方式。
上述就是C#学习教程:C# – HttpClient没有发送任何COOKIE分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记