我有一个ASP.NET Web应用程序,在执行某个操作(例如单击链接)时存储HTTP cookie。现在,我正在创建一个独立的C#应用程序,需要监视cookie文件夹,并识别我的Web应用程序创建了cookie条目,然后读取cookie内容。
请问有人可以指导我如何在C#中实现此功能或者提供示例代码吗?
请问有人可以指导我如何在C#中实现此功能或者提供示例代码吗?
您应该能够使用 PInvoke 调用 InternetGetCookie
。
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
protected static extern bool InternetGetCookie(
string url,
string name,
StringBuilder cookieData,
ref int length);
如果你使用Rest Starter Kit,那么你可以像下面这样调用InternetGetCookie
。
StringBuilder cookieBuffer = new StringBuilder(1024);
int size = 1024;
bool bSuccess = InternetGetCookie("domain uri", "cookie_name", cookieBuffer, ref size);
if (!bSuccess)
{
Int32 err = Marshal.GetLastWin32Error();
//log err
}
if (cookieBuffer != null && (cookieBuffer.Length > 0))
{
Microsoft.Http.Headers.Cookie cookie = Microsoft.Http.Headers.Cookie.Parse(cookieBuffer.ToString());
HeaderValues<Microsoft.Http.Headers.Cookie> requestCookies = new HeaderValues<Microsoft.Http.Headers.Cookie>();
requestCookies.Add(cookie);
}
WebBrowser
控件中托管页面,并使用一个ObjectForScripting
对象(由您设计)来从JavaScript与C#应用程序进行通信?还有一件事情可以通过点击链接来调用您的本地应用程序。您需要像这里所示注册URL协议的应用程序。这里有一个教程和示例应用程序供您参考。
这样做会带来一些安全隐患。但是,这是一种从网页中调用您的应用程序并允许您通过命令行参数传递数据的简单方法。