2010-07-28 20 views
5

मेरे पास एक एएसपी.नेट वेब एप्लिकेशन है जो एक निश्चित क्रिया के दौरान HTTP कुकी संग्रहीत करता है (उदा। एक लिंक क्लिक किया गया है)। अब, मैं एक स्टैंडअलोन सी # ऐप बना रहा हूं जिसे कुकीज़ फ़ोल्डर को देखने और पहचानने की आवश्यकता है जब मेरे वेब एप्लिकेशन द्वारा कुकी प्रविष्टि बनाई गई है और कुकी की सामग्री को पढ़ा गया है।स्थानीय कुकीज़ को कैसे पढ़ा जाए

क्या कोई मुझे सी # में ऐसा करने या नमूना कोड दिखाने के बारे में मार्गदर्शन कर सकता है?

उत्तर

5

आपको InternetGetCookie पर PInvoke करने में सक्षम होना चाहिए।

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] 
protected static extern bool InternetGetCookie(
    string url, 
    string name, 
    StringBuilder cookieData, 
    ref int length); 

फिर आप InternetGetCookie आप Rest Starter Kit उपयोग कर रहे हैं यह सोचते हैं नीचे की तरह कह सकते हैं।

StringBuilder cookieBuffer = new StringBuilder(1024); 
int size = 1024; 
bool bSuccess = InternetGetCookie("domain uri", "cookie_name", cookieBuffer, ref size); 
if (!bSuccess) 
{ 
    Int32 err = Marshal.GetLastWin32Error(); 
    //log err 
} 
if (cookieBuffer != null && (cookieBuffer.Length > 0)) 
{ 
    Microsoft.Http.Headers.Cookie cookie = Microsoft.Http.Headers.Cookie.Parse(cookieBuffer.ToString()); 
    HeaderValues<Microsoft.Http.Headers.Cookie> requestCookies = new HeaderValues<Microsoft.Http.Headers.Cookie>(); 
    requestCookies.Add(cookie); 
} 
5

मैं सोच रहा कि बस यह करने के लिए गलत तरीका है मदद नहीं कर सकता ... और यह सुरक्षा दुरुपयोग के reaks। क्या आप ऐसा करने का कोई बेहतर तरीका नहीं कर सकते? शायद WebBrowser नियंत्रण में पृष्ठ को होस्ट कर रहा है और ObjectForScripting ऑब्जेक्ट (आपके विविधीकरण के) का उपयोग करके आप जावास्क्रिप्ट से सी # ऐप से बात कर सकते हैं?

+0

अच्छा बिंदु। ओपी, क्या कोई कारण है कि आपको क्लाइंट पर मूल्य क्यों स्टोर करना है? सर्वर पर मूल्य संग्रहीत करने और क्लाइंट ऐप को सेवा के माध्यम से खींचने के बारे में क्या? Esp यदि क्लाइंट ऐप को WebBrowser नियंत्रण की कोई वास्तविक आवश्यकता नहीं है। –

+0

जब मेरी वेबसाइट पर एक लिंक क्लिक किया गया है तो मुझे एक निश्चित कार्रवाई करने के लिए मेरे ऐप की आवश्यकता है। तो मैंने सोचा कि ऐसा करने का सबसे अच्छा तरीका ऐप के लिए कुकीज़ के लिए देखना होगा और वेबसाइट पर कुकी को स्टोर करने के लिए एक लिंक चालू होने पर होगा। क्या कोई बेहतर तरीका है? – Glory

0

एक और चीज है जो आप कर सकते हैं जो आपके स्थानीय एप्लिकेशन को लिंक पर क्लिक करके बुलाया जा सकता है। आपको register an application to a URL protocol as seen here की आवश्यकता होगी। Here is a tutorial and sample app you can look at

ऐसा करने से यह सुरक्षा प्रभावों का अपना सेट है। हालांकि, यह वेब पेज से आपके एप्लिकेशन को आमंत्रित करने का एक आसान तरीका है और यह आपको कमांड लाइन पैराम्स के माध्यम से डेटा पास करने की अनुमति देता है।

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