2009-02-02 38 views
4

我已經寫在VB.NET以下控制檯應用程序:InternetExplorer.Application對象和cookie的容器

Sub Main() 
    Dim ie As Object = CreateObject("InternetExplorer.Application") 
    ie.Visible = True 
    ie.Navigate2("http://localhost:4631/Default.aspx") 
End Sub 

此程序使用InternetExplorer.Application自動化對象,推出一個IE窗口和瀏覽特定的URL。我遇到的問題是,即使我啓動應用程序的多個實例,使用此方法創建的IE窗口都共享同一個cookie容器。是否有任何參數可以用來指定爲每個窗口創建不同的cookie容器?

這是網頁我用來測試餅乾:

<%@ Page Language="C#" AutoEventWireup="true" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     // Store something into the session in order to create the cookie 
     Session["foo"] "bar"; 
     Response.Write(Session.SessionID); 
    } 
</script> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<body> 
    <form id="form1" runat="server"></form> 
</body> 
</html> 

回答

2

關於的CreateObject("InternetExplorer.Application")你的你的程序通過這一過程中通信創建Internet Explorer實例和所有實例。 Cookie將按流程進行保存。

您可以嘗試在您的應用程序WebBrowser控件中使用(請參閱http://msdn.microsoft.com/en-us/library/3s8ys666.aspx)。您可以在http://msdn.microsoft.com/en-us/library/aa752044(VS.85).aspx中找到比較兩種方式的信息。如果您將在您的應用程序中使用WebBrowser控件,則應用程序的所有實例都將擁有自己的一組Cookie,但每個進程只有一組Cookie,與您應用程序中WebBrowser控件的數量無關。

內的任何過程,你可以隨時清除該cookie對於下面的調用

InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0); 

(見http://support.microsoft.com/kb/195192/en品),顯示一次拿着餅乾的性質。

相關問題