-1

我正在使用restsharp对外部网站进行身份验证。在那之后,我得到你的饼干。

我怎样才能在浏览器中设置它以便我保持登录状态?

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。

4

1 回答 1

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 中执行起来要容易得多。

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

于 2019-10-03T15:00:35.127 回答