【发布时间】:2013-11-29 10:59:41
【问题描述】:
我有一个 Windows 应用程序。使用它我可以打开一个 Web 应用程序。 如何使用 c#.net 在 Windows 应用程序中创建 cookie
【问题讨论】:
标签: c#
我有一个 Windows 应用程序。使用它我可以打开一个 Web 应用程序。 如何使用 c#.net 在 Windows 应用程序中创建 cookie
【问题讨论】:
标签: c#
创建cookie需要调用win api。
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool InternetSetCookie(string url, string name, string data);
上面的代码需要在类级别的代码中声明。
然后可以从您的代码(例如单击事件处理程序)中调用该函数,如下所示:
InternetSetCookie("http://www.example.com", "CookieName", "data=cookieData; expires = Sat,01-Jan-2012 00:00:00 GMT; path=/");
然后设置这些 cookie,如果您启动浏览器,这些 cookie 就会存在并被使用。
【讨论】:
通过C#.Net Web Application,您可以通过以下方式读取和写入 cookie:
Writing a Cookie:
HttpCookie myCookie = new HttpCookie("myCookie");
myCookie.Value = "SomeInfo";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
Reading a Cookie:
HttpCookie myCookie = Request.Cookies["myCookie"];
【讨论】:
您可以使用System.Net.CookieContainer 类在请求时保存 cookie 值。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = cookieContainer;
// Do something with this request
cookieContainer 是一个变量,用于在您的应用程序和网络之间保持 cookie 转换。您可以在应用程序第一次启动时对其进行一次初始化。
【讨论】:
System.Net.CookieContainer cookieContainer = new CookieContainer(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:1155/UI/frmLogin.aspx"); request.CookieContainer = cookieContainer; cookieContainer.Add(new Uri(@"http://localhost:1155/UI/frmLogin.aspx"), cook); 但是当我试图访问这个 cookie 时,从 Web 应用程序显示一个空引用异常
cook的?
Cookie 实例。我把它留给 Web 服务器。为了访问安全的 uri,我只是将信息发送到登录页面(例如用户、密码)。完成该请求后,我可以使用该端的任何安全页面,也可以在网络浏览器上浏览网络。
也许这会对你有所帮助
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(args[0]);
request.CookieContainer = new CookieContainer();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);
foreach (Cookie cook in response.Cookies)
{
Console.WriteLine("Cookie:{0} = {1}", cook.Name, cook.Value);
}
【讨论】:
Windows 应用程序中不存在 Cookie - 相反,数据要么保存在文件中,要么保存在应用程序设置中,要么保存在注册表中,具体取决于数据量及其组织。您可以将其保存在数据库中、XML 文件中或作为二进制信息。
但您不在 Windows 应用程序中使用 cookie - 它们用于从服务器在客户端上进行设置,这些概念在使用 Windows 应用程序时不适用。
应用程序设置可能是最简单的: 1) 单击解决方案资源管理器中的项目,选择“属性”。 2) 双击“设置.设置”。 3) 在出现的对话框中,通过指定名称、类型和值来创建应用程序设置 - 将“范围”保留为“用户”。 4) 您现在可以轻松保存和加载您的值:
Properties.Settings.Default.MySettingString = "New Value";
Properties.Settings.Default.Save();
...
string myValue = Properties.Settings.Default.MySettingString;
更多详情请看这里 https://stackoverflow.com/search?q=create+cookie+in+windows+application+C%23
【讨论】: