如何使用Restharp在浏览器中设置Cookie?

时间:2019-10-03 14:35:33

标签: c# restsharp

我正在使用restsharp对外部网站进行身份验证。之后,我得到了您的cookie。

我该如何在浏览器中进行设置以便保持登录状态?

request.AddHeader("cache-control", "no-cache");
request.AddHeader("Authorization", "Basic XXJhbmRvbTpyYW5kb20=");
IRestResponse response = client.Execute(request);

var cookie = client.CookieContainer.GetCookieHeader(new Uri("http://www.example.com"));

也许C#中没有解决方案,我正在考虑通过ajax返回并尽可能处理Javascript。

1 个答案:

答案 0 :(得分:0)

如果您的项目类型与ASP.Net相关,则可以设置Google Chrome浏览器的cookie。

如果要制作后端软件,只需在响应中添加新的标头即可:

public void Test()
{
     Response.Cookies.Append("ExampleCookie", "Cookie value!");
}

如果浏览器在一台PC上同时运行您的应用程序,则无法从C#本地设置Google Chrome浏览器的Cookie。

我并不是真的说你做不到,但是你真的不应该这样做。因为:

1)您需要查找cookie如何存储在文件中
2)您需要修改它们。结构可以在任何浏览器更新中更改。
3)它可以触发杀毒软件。如果您的应用程序试图从浏览器中窃取东西怎么办?

JavaScript只在您的页面上下文中执行,它可以访问内部API,因此,是的,在JS中执行起来要容易得多。

您可以使用embedded browser for WinForms或嵌入CefSharp浏览器(Chromium引擎)。
您可以轻松地修改这些浏览器的cookie(在您的应用程序上下文中运行)。