gpt4 book ai didi

c# - 将 cookie 从 CookieContainer 写入 IE cookie 存储

转载 作者:行者123 更新时间:2023-11-30 16:32:56 24 4
gpt4 key购买 nike

我想从桌面应用程序导航到网络应用程序中的页面。 “没问题”,我听到你说,“只需使用正确的 URL 启动默认浏览器”。但是,Web 应用程序使用 ASP.NET 表单例份验证,用户不想看到登录页面,因为他们已经在桌面应用程序中使用相同的凭据进行了身份验证。

这听起来很简单,我所要做的就是从桌面应用程序发出一个 HTTP POST,并伪造从 Web 应用程序的登录页面回发。然后,Web 应用程序将设置其身份验证票证和 session 状态 cookie,将它们返回给我,我会将它们存储在 IE cookie 存储区中。然后我可以导航到所需的页面,网络应用程序会认为它已经通过身份验证。

我有一些构建 HTTP POST、发送它并获得包含正确 cookie 的有效响应的工作代码。但是,我看不到如何将它们写入 IE cookie 存储区。谁能指出我正确的方向?

示例代码:

var requestUrl = Properties.Settings.Default.WebsiteLoginPageUrl;

var requestEncoding = Encoding.GetEncoding(1252);

// Simulated login postdata
var requestText = string.Format(
"__VIEWSTATE={2}&__EVENTTARGET={3}&__EVENTARGUMENT={4}&__EVENTVALIDATION={5}&userNameText={0}&passwordText={1}&submitButton=Log+In",
HttpUtility.UrlEncode(Properties.Settings.Default.UserName),
HttpUtility.UrlEncode(Properties.Settings.Default.Password),
Properties.Settings.Default.FakeViewState,
Properties.Settings.Default.FakeEventTarget,
Properties.Settings.Default.FakeEventArgument,
Properties.Settings.Default.FakeEventValidation);

var request = (HttpWebRequest) WebRequest.Create(requestUrl);
request.Method = "POST";
request.Accept = "*/*";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = requestEncoding.GetByteCount(requestText);
request.Headers.Add(HttpRequestHeader.CacheControl, "no-cache");
request.AllowAutoRedirect = false;
request.KeepAlive = false;
request.CookieContainer = new CookieContainer();

using(var writer = new StreamWriter(request.GetRequestStream(), requestEncoding)) {
writer.Write(requestText);
}

var response = (HttpWebResponse) request.GetResponse();

// TODO: Grab the response cookies and save them to the interactive desktop user's cookie store.

Process.Start(new ProcessStartInfo {
FileName = Properties.Settings.Default.WebsiteTargetPageUrl,
UseShellExecute = true,
});

最佳答案

您需要调用非托管 InternetSetCookie()功能。看!有人wrote the interop已经为你。不过,您应该验证其正确性。

关于c# - 将 cookie 从 CookieContainer 写入 IE cookie 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3668392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com