2013-08-12 4 views
5

चूंकि वेब ब्रोसर में सी # शेयर वेब ब्राउजर के अन्य सभी उदाहरणों के साथ कुकीज साझा करता है, इसलिए मैं वेब ब्राउजर के लिए अपने स्वयं के कुकी कंटेनर रखना चाहता हूं जो कि किसी भी कुकीज को साझा नहीं करता है आईई या अन्य मामलों में पहले बनाया गया था।.NET WebBrowser को आईई या अन्य उदाहरणों के साथ कुकीज़ साझा न करें

तो उदाहरण के लिए जब मैं वेबब्रोसर बनाता हूं तो इसमें कोई कुकी नहीं होनी चाहिए। और जब मैं वेब ब्राउजर के 2 उदाहरण चलाता हूं तो उनके पास अपना स्वयं का कुकी कंटेनर होता है और एक दूसरे के साथ कुकीज़ साझा या संघर्ष नहीं करता है।

मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

3

आप InternetSetOption Win32 फ़ंक्शन का उपयोग करने की प्रक्रिया के अनुसार ऐसा कर सकता है:

[DllImport("wininet.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] 
public static extern bool InternetSetOption(int hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength); 

और फिर अपने आवेदन स्टार्टअप पर निम्नलिखित फ़ंक्शन को कॉल करें:

private unsafe void SuppressWininetBehavior() 
{ 
    /* SOURCE: http://msdn.microsoft.com/en-us/library/windows/desktop/aa385328%28v=vs.85%29.aspx 
    * INTERNET_OPTION_SUPPRESS_BEHAVIOR (81): 
    *  A general purpose option that is used to suppress behaviors on a process-wide basis. 
    *  The lpBuffer parameter of the function must be a pointer to a DWORD containing the specific behavior to suppress. 
    *  This option cannot be queried with InternetQueryOption. 
    *  
    * INTERNET_SUPPRESS_COOKIE_PERSIST (3): 
    *  Suppresses the persistence of cookies, even if the server has specified them as persistent. 
    *  Version: Requires Internet Explorer 8.0 or later. 
    */ 


    int option = (int)3/* INTERNET_SUPPRESS_COOKIE_PERSIST*/; 
    int* optionPtr = &option; 

    bool success = InternetSetOption(0, 81/*INTERNET_OPTION_SUPPRESS_BEHAVIOR*/, new IntPtr(optionPtr), sizeof(int)); 
    if (!success) 
    { 
     MessageBox.Show("Something went wrong !>?"); 
    } 
} 
+0

यह धागा प्रति ऐसा करना संभव है? – EBAG

+0

मुझे ऐसा नहीं लगता है। आखिरकार यह न भूलें कि वेब ब्राउजर नियंत्रण जो आप उपयोग कर रहे हैं वह देशी COM ऑब्जेक्ट पर केवल एक रैपर है जो इंटरनेट एक्सप्लोरर का प्रतिनिधित्व करता है। –

+0

कुकीज़ साझा करने के संबंध में, मुझे नहीं लगता कि यह प्रति-थ्रेड आधार पर भी संभव है। वेबब्राउज़र उदाहरणों के लिए सत्र प्रति-प्रक्रिया साझा किया जाता है। यहां एक समान [प्रश्न] है (http://stackoverflow.com/questions/18055734/net-webbrowser-control-and-dispose/18057266#18057266)। – Noseratio

संबंधित मुद्दे