Définition d'un cookie dans un contrôle WebBrowser
Je charge un site Web en utilisant la fonction de navigation D'un navigateur web, et je veux que le navigateur charge la page avec un cookie que je lui ai donné.
Le code suivant ne fonctionne pas:
wb.Navigate(url, null, null, "Cookie: " + cookie + "n");
Qu'est-ce que je fais de mal? Dois-je utiliser InternetSetCookie? Cela ne semble pas être la meilleure solution.
22
demandé sur
John Saunders
2010-05-14 01:55:52
2 réponses
On dirait qu'il y a un meilleur moyen:
Importer la fonction InternetSetCookie
:
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetSetCookie(string lpszUrlName, string lpszCookieName, string lpszCookieData);
Créez l'objet Cookie
:
Cookie temp1 = new Cookie("KEY1", "VALUE1", "/Path/To/My/App", "/");
Appelez la fonction InternetSetCookie
pour définir le cookie pour cette URL
InternetSetCookie("https://my.url.com/Path/To/My/App", null, temp1.ToString() + "; expires = Sun, 01-Jan-2013 00:00:00 GMT");
Navigate
le WebBrowser
à l'URL que vous souhaitez aller.
webBrowser1.Navigate("https://my.url.com/Path/To/My/App");
Pense que c'est la meilleure solution pour le problème :).
20
répondu
Kiran Madipally
2015-05-23 16:49:42
La bonne façon est D'utiliser InternetSetCookieEx.
[DllImport("wininet.dll")]
static extern InternetCookieState InternetSetCookieEx(
string lpszURL,
string lpszCookieName,
string lpszCookieData,
int dwFlags,
int dwReserved);
enum InternetCookieState : int
{
COOKIE_STATE_UNKNOWN = 0x0,
COOKIE_STATE_ACCEPT = 0x1,
COOKIE_STATE_PROMPT = 0x2,
COOKIE_STATE_LEASH = 0x3,
COOKIE_STATE_DOWNGRADE = 0x4,
COOKIE_STATE_REJECT = 0x5,
COOKIE_STATE_MAX = COOKIE_STATE_REJECT
}
Voici du code pour le tester sur un site web qui affiche vos en-têtes HTTP.
InternetSetCookieEx("http://request.urih.com/", null, "TestData=Test;", 0, 0);
webBrowser1.Navigate("http://request.urih.com/");
3
répondu
Zachafer
2015-11-30 08:24:29