Ich versuche, WebRequest zu einer Webseite nach erfolgreicher Anmeldung in gesicherten Web-Portal über WPF WebBrowser-Steuerelement zu bauen, aber stecken mit dem Problem der Wiederverwendung von WebBrowser-Cookies in WebRequest.WPF WebBrowser Cookies in WebRequest verwendet werden
Im Gegensatz zu WinForms gibt es im WPF-WebBrowser-Steuerelement keine Möglichkeit, CookieCollection über WebBrowser.Document.Cookies zu extrahieren, da das Document-Objekt keine Cookie-Eigenschaft besitzt. Der einzige Weg, ich fand, ist mshtml.HTMLDocument2 zu verwenden, welche Cookies als String
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)webBrowser.Document;
string cookies = doc.cookie;
hat aber es ist nicht gut genug ist, so wie MSHTML.Document2 sieht - erlaubt keine wichtigen Httponly-Cookies (wie ASP zu extrahieren. Net_SessionID) - und ich muss manuell CookieCollection-Objekt von Cookies Zeichenfolge erstellen.
Als Ergebnis schlägt WebRequest mit Cookies, die aus string erstellt wurden, mit Session-Timeout-Fehler fehl, da ASP.Net_SessionID nicht verfügbar ist.
Gibt es eine andere Möglichkeit, ordnungsgemäßes und vollständiges CookieCollection-Objekt aus WPF WebBrowser-Steuerelement zu erstellen?
Verwenden Sie InternetGetCookieEx und übergeben Sie das INTERNET_COOKIE_HTTPONLY-Flag. – EricLaw
@EricLaw danke für die Korrektur! –