Glo*_*ory 5 c# asp.net cookies
我有一个ASP.NET Web应用程序,在执行某个操作时存储HTTP cookie(例如,单击了一个链接).现在,我正在创建一个独立的C#应用程序,它需要查看cookies文件夹并识别我的Web应用程序何时创建了cookie条目并读取了cookie的内容.
有谁可以指导我如何在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);
Run Code Online (Sandbox Code Playgroud)
InternetGetCookie假设您正在使用Rest Starter Kit,则可以调用如下所示.
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);
}
Run Code Online (Sandbox Code Playgroud)
我不禁想到这只是错误的做法......而且它也是安全滥用的祸根.有没有更好的方法可以做到这一点?也许在一个WebBrowser控件中使用一个ObjectForScripting对象(你的设计)来托管页面,这样你就可以通过javascript与C#应用程序交谈了?
您还可以做另一件事,这可能会导致通过单击链接来调用本地应用程序。您需要将应用程序注册到 URL 协议,如此处所示。 这是您可以查看的教程和示例应用程序。
这样做有其自身的一系列安全隐患。但是,这是从网页调用应用程序的一种简单方法,并且它允许您通过命令行参数传递数据。
| 归档时间: |
|
| 查看次数: |
3707 次 |
| 最近记录: |