2009-08-26 8 views
4

Angenommen, ich habe ein Webbrowser-Steuerelement in einem Windows-Formular, und der Benutzer meldet sich über das Formular bei einer sicheren Site an. Wenn der Benutzer IE separat öffnen würde, würde es auch anzeigen, dass sie angemeldet sind. Ist es möglich, die IE-Instanz des Windows-Formulars zu isolieren?Ist es möglich, IE in einer Windows-Form zu "sandboxieren"?

Antwort

0

Wenn Sie sich bei einer Site anmelden, erhalten Sie in der Regel einen Cookie vom Server, der Sie als "angemeldet" kennzeichnet (SEHR zu stark vereinfacht ...). Meine Vermutung wäre, die Cookies zu löschen. Siehe hier:

How to delete Cookies from windows.form?

+0

dies nicht mit einem Zertifikat im Fall von SSL-Client-Authentifizierung funktioniert. Sie müssen INTERNET_OPTION_BROWSER_END_SESSION erzwingen, um auch die Informationen zum SSL-Zertifikat – madduci

1

Sie erwähnen nicht Ihre Version; Das Verhalten hat sich von IE7 zu IE8 geändert.

In IE7 und IE6 können Sie mehrere Fenster öffnen und sich mit verschiedenen Benutzer-IDs an einer Site authentifizieren.

In IE8 wird der Sitzungsstatus für alle Browsersitzungen freigegeben.

Sie können den IE mit aktiviertem Datenschutzmodus öffnen. Dies sollte ermöglichen, dass die Sitzung sandboxed wird.

+1

zu entfernen, aber wie markieren Sie ein WebBrowserControl für den Datenschutzmodus? –

2

Das WebBrowser-Steuerelement basiert auf dem WebBrowser ActiveX, das auf dem WinInet liegt. Sie sollten also in der Lage sein, sein Verhalten über die WinInet-API zu beeinflussen.

Sie können versuchen, InternetSetOption WinInet API aufrufen, um die Option INTERNET_OPTION_END_BROWSER_SESSION zum Beenden der aktuellen Sitzung und starten Sie eine neue. Verwenden Sie den INTERNET_HANDLE_TYPE_INTERNET-Punkt, um sicherzustellen, dass sich der Aufruf nur auf den aktuellen Prozess auswirkt.

+0

können Sie ein Beispiel für die Verwendung des Handle INTERNET_HANDLE_TYPE_INTERNET geben? Stellen Sie sicher, dass InternetSetOption keinen Einfluss auf Office hat. – tofutim

+0

Übergeben Sie INTERNT_HANDLE_TYPE_INTERNET als ersten Parameter in Ihrem Aufruf von InternetSetOption. –

1

IE8 hat den Befehlszeilenschalter -nomerge, die den Browser mit einer neuen Sitzung beginnt

Verwandte Themen