2009-03-08 15 views

उत्तर

45

सत्र

Sessions स्मृति में (या एक वैकल्पिक Session-State) सर्वर पर प्रति-उपयोगकर्ता जमा हो जाती है। सत्र में उपयोगकर्ता को बांधने के लिए सत्र कुकी (सत्र कुंजी) का उपयोग करते हैं। इसका मतलब है कि उपयोगकर्ता मशीन पर कुकी में कोई "संवेदनशील" डेटा संग्रहीत नहीं होता है।

Sessions आमतौर पर किसी वेबसाइट के माध्यम से नेविगेट करते समय राज्य को बनाए रखने के लिए उपयोग किया जाता है। हालांकि, इन्हें आमतौर पर एक्सेस किए गए ऑब्जेक्ट्स को पकड़ने के लिए भी उपयोग किया जा सकता है। केवल तभी जब सत्र-स्थिति इनप्रोक पर सेट की गई हो, यदि किसी अन्य Session-State mode पर सेट किया गया है तो ऑब्जेक्ट को भी क्रमबद्ध करना होगा।

Session["userName"] = "EvilBoy"; 

if(Session["userName"] != null) 
    lblUserName.Text = Session["userName"].ToString(); 

कुकीज़

Cookies उपयोगकर्ताओं मशीन पर प्रति-उपयोगकर्ता जमा हो जाती है। एक कुकी आमतौर पर थोड़ी सी जानकारी होती है। कुकीज आमतौर पर सरल उपयोगकर्ता सेटिंग्स रंग वरीयताओं ect के लिए उपयोग किया जाता है। कुकी में कोई संवेदनशील जानकारी कभी भी संग्रहित नहीं की जानी चाहिए।

आप कभी भी पूरी तरह से भरोसा नहीं कर सकते कि एक कुकी को उपयोगकर्ता या बाहरी स्रोत द्वारा छेड़छाड़ नहीं किया गया है, हालांकि यदि सुरक्षा एक बड़ी चिंता है और आपको कुकीज़ का उपयोग करना होगा तो आप या तो अपनी कुकीज़ को एन्क्रिप्ट कर सकते हैं या उन्हें केवल प्रेषित करने के लिए सेट कर सकते हैं एसएसएल पर कोई उपयोगकर्ता अपनी कुकीज़ को किसी भी समय साफ़ कर सकता है या कुकीज को पूरी तरह से अनुमति नहीं दे सकता है, इसलिए आप उन पर भरोसा नहीं कर सकते हैं क्योंकि उपयोगकर्ता ने आपकी साइट पर अतीत में देखा है।

//add a username Cookie 
Response.Cookies["userName"].Value = "EvilBoy"; 
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(10); 
//Can Limit a cookie to a certain Domain 
Response.Cookies["domain"].Domain = "Stackoverflow.com"; 

//request a username cookie 
if(Request.Cookies["userName"] != null) 
    lblUserName.Text = Server.HtmlEncode(Request.Cookies["userName"].Value); 

sidenote

यह उल्लेख के ASP.NET भी समर्थन करता है कि लायक है cookieless राज्य प्रबंधन

+1

इसके अलावा, कुकी द्वारा प्रत्येक अनुरोध पर सत्र की पहचान की जाती है। एक कुकी के बिना (या यूआरएल idenitfier, बुरा!) सत्र कैनोट ट्रैक किया जा सकता है। – DGM

+0

अच्छा जवाब, लेकिन मैंने एक सामान्य प्रश्न पूछने के बाद अपरिवर्तित नहीं किया, और आपके उत्तर को माइक्रोसॉफ्ट प्लेटफ़ॉर्म के कुछ ज्ञान की आवश्यकता है। – TrojanName

+1

@ ब्रायन हालांकि ... सवाल सी # और एएसपीनेट के साथ उचित होने के लिए टैग किया गया है :-) फिर भी कुकीज़ और सत्र एक सामान्य विषय हैं, लेकिन प्रदान किया गया नमूना ओपी के लिए उपयुक्त है इसलिए मैंने –

10

एक कुकी है एक identifaction स्ट्रिंग एक सर्वर में (जो एक डोमेन है) द्वारा संग्रहीत सर्वर/डोमेन पर आने वाले उपयोगकर्ता का ब्राउज़र।

एक सत्र शायद चर, राज्य, सेटिंग्स की एक इकाई है जबकि एक निश्चित उपयोगकर्ता किसी विशिष्ट समय सीमा में सर्वर/डोमेन तक पहुंच रहा है। सभी सत्र जानकारी सर्वर (!)

पर संग्रहीत पारंपरिक मॉडल में है क्योंकि कई समवर्ती उपयोगकर्ता एक ही समय में एक सर्वर/डोमेन पर जा सकते हैं, सर्वर को कई अलग-अलग समवर्ती सत्रों को अलग करने में सक्षम होना चाहिए और हमेशा असाइन करना होगा सही उपयोगकर्ता के लिए सही सत्र। (और कोई भी उपयोगकर्ता किसी अन्य उपयोग के सत्र को "चोरी" नहीं कर सकता है)

यह कुकी के माध्यम से किया जाता है। ब्राउजर में संग्रहीत कुकी और जो इस मामले में एक यादृच्छिक संयोजन होनी चाहिए जैसे s73jsd74df4fdf (इसलिए इसे अनुमानित नहीं किया जा सकता है) ब्राउजर से सर्वर पर प्रत्येक अनुरोध पर भेजा जाता है, और सर्वर सही सत्र को असाइन और उपयोग कर सकता है इसके उत्तर (पृष्ठ दृश्य)

कुकी सर्वर को ब्राउज़र/उपयोगकर्ता को पहचानने की अनुमति देती है। सत्र सर्वर को विभिन्न पृष्ठ दृश्यों के बीच जानकारी याद रखने की अनुमति देता है।

+1

मैंने इसे ऊपर उठाया लेकिन समुदाय विकी क्यों? यह एक पूरी तरह से वैध प्रोग्रामिंग संबंधित उत्तर है। –

5

कुकी आपके चर के क्लाइंट साइड स्टोरेज है। यह क्लाइंट मशीन पर भौतिक रूप से ब्राउज़र द्वारा संग्रहीत किया जाता है। यह दायरा मशीन चौड़ा है। एक ही मशीन पर अलग-अलग उपयोगकर्ता एक ही कुकी पढ़ सकते हैं।

इस वजह से

:

  1. आप कुकी पर संवेदनशील डाटा स्टोर नहीं करना चाहिए।
  2. आपको एक उपयोगकर्ता खाते से संबंधित डेटा स्टोर नहीं करना चाहिए।
  3. कुकी का सर्वर संसाधनों पर कोई प्रभाव नहीं पड़ता है।
  4. कुकी आपके द्वारा निर्दिष्ट दिनांक पर समाप्त हो जाती है।

सत्र आपके चर के सर्वर साइड स्टोरेज है। डिफ़ॉल्ट, यह सर्वर की स्मृति पर संग्रहीत है। लेकिन आप इसे एसक्यूएल सर्वर पर स्टोर करने के लिए कॉन्फ़िगर कर सकते हैं। यह गुंजाइश ब्राउज़र चौड़ा है। वही उपयोगकर्ता दो या दो से अधिक ब्राउज़र चला सकता है और प्रत्येक ब्राउज़र का अपना सत्र होता है।

इस वजह से

:

  1. आप सत्र में संवेदनशील डेटा बचा सकता है।
  2. आपको सत्र में सब कुछ सहेजना नहीं चाहिए। यह सर्वर संसाधनों का अपशिष्ट है।
  3. उपयोगकर्ता ब्राउज़र बंद करने के बाद, सत्र टाइमआउट सभी जानकारी साफ़ करता है। (डिफ़ॉल्ट 20 मिनट है)
2

दोनों के पास यह संभव है: डेटाबेस प्राथमिक कुंजी को एक लुकअप टेबल में धोया और संग्रहीत किया जाता है: फिर हैश क्लाइंट पर कुकी के रूप में संग्रहीत किया जाता है। एक बार हैश कुकी (हाहाहाहा :) सबमिट हो जाने के बाद, इसकी इसी प्राथमिक प्राथमिक कुंजी को देखा जाता है, और शेष विवरण सर्वर डेटाबेस पर किसी अन्य तालिका में इसके साथ जुड़े होते हैं।

0
  • कुकीज और सत्रों के बीच मुख्य अंतर यह है कि कुकीज़ उपयोगकर्ता के ब्राउज़र में संग्रहीत होती है, और सत्र नहीं होते हैं। यह अंतर निर्धारित करता है कि प्रत्येक के लिए सबसे अच्छा क्या उपयोग किया जाता है।

  • एक कुकी हटाए जाने तक उपयोगकर्ता के ब्राउज़र में जानकारी रख सकती है। अगर किसी व्यक्ति के पास लॉगिन और पासवर्ड होता है, तो इसे अपने ब्राउज़र में कुकी के रूप में सेट किया जा सकता है, इसलिए जब भी वे जाते हैं तो उन्हें आपकी वेबसाइट पर फिर से लॉगिन करने की आवश्यकता नहीं होती है। आप ब्राउजर कुकी में लगभग कुछ भी स्टोर कर सकते हैं।

+0

"कुकीज़ उपयोगकर्ता के ब्राउज़र में संग्रहीत हैं, और सत्र नहीं हैं।" वैश्विक सत्र स्टोरेज ऑब्जेक्ट के बारे में वेबपृष्ठ पर कैसे उपलब्ध है? –

0

सत्र कुकी पर अनुमति देने वाले उपयोगकर्ता पर निर्भर नहीं हैं। वे उपयोगकर्ता के ब्राउज़र को खोलने के दौरान एक्सेस और पासिंग जानकारी की अनुमति देने वाले टोकन की तरह काम करते हैं। सत्रों में समस्या यह है कि जब आप अपना ब्राउज़र बंद करते हैं तो आप सत्र भी खो देते हैं। इसलिए, यदि आपके पास एक लॉगिन की आवश्यकता वाली साइट थी, तो इसे एक कुकी के रूप में सहेजा नहीं जा सका, और उपयोगकर्ता को हर बार फिर से लॉगिन करने के लिए मजबूर होना पड़ता है।

1

सत्र एक सर्वर साइड ऑब्जेक्ट है, जो पृष्ठ कॉल के बीच डेटा स्थानांतरित या एक्सेस करता है।
कुकीज़ एक ऑब्जेक्ट है जो क्लाइंट साइड/क्लाइंट मशीन है जो ब्राउज़र और सर्वर की कुछ टेक्स्ट जानकारी संग्रहीत करती है।

0

सत्र कुकी क्या है इसके बारे में कुछ भ्रम प्रतीत होता है।

सबसे पहले, जब हम सत्र कुकीज़ बोल रहे हैं - इसका एएसपी.Net सत्रों से कोई लेना देना नहीं है। इसी तरह, सत्र कुकीज़ के सर्वर साइड प्रक्रियाओं या कैशिंग के साथ कुछ लेना देना नहीं है।

एक सत्र कुकी कुकी की अवधि समाप्त होने पर समाप्त होने वाली कुकी से अधिक कुछ नहीं है। सत्र कुकी बनाने के लिए - उस पर एक समाप्ति तिथि न डालें। ऐसा करने से कुकी को मेमोरी में स्टोर किया जाता है और ब्राउज़र का निपटारा होने पर इसका निपटारा किया जाता है।

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