में लॉगिन के बाद सत्र आईडी को कैसे बदला जाए मेरे पास एक ऐसी वेबसाइट है जो फॉर्म प्रमाणीकरण और सदस्यता का उपयोग कर रही है। उपयोगकर्ता के पास साइट का उपयोग करने के लिए कुकीज़ सक्षम होना चाहिए। मुझे कोड बदलने के लिए कहा गया है ताकि जैसे ही कोई उपयोगकर्ता लॉग इन करता है, सत्र आईडी बदल जाती है। जाहिर है, यह एक सत्र निर्धारण हमले (http://en.wikipedia.org/wiki/Session_fixation) के खिलाफ सुरक्षा करेगा। क्या कोई जानता है कि पूरे सत्र को खोए बिना मैं सत्र आईडी कैसे बदल सकता हूं? PHP को ऐसा करने के लिए एक विशिष्ट विधि है लेकिन मुझे .NET समकक्ष नहीं मिल रहा है।asp.net
asp.net
उत्तर
Here's a blog post है कि इस बारे में बात करती:
ASP.NET सीधे कार्यक्षमता का समर्थन नहीं करता एक सत्र आईडी पुनर्जीवित करने के लिए। समस्या here के बारे में दस्तावेज़ देखें।
ASPNET_SessionID
को पर खाली स्ट्रिंग और को रीडायरेक्ट करने के लिए पर रीडायरेक्ट करने के लिए यह करने के लिए not-so quick and dirty way है।
मैंने Generating a new ASP.NET session in the current HTTPContext पर एक समान प्रश्न का उत्तर दिया है। मूल रूप से हमें सत्र सत्र में कुछ खोए बिना सत्र आईडी को पुन: उत्पन्न करने में सक्षम होने के लिए कुछ सत्रस्टेट मॉड्यूल आंतरिक स्थिति को बदलना होगा। मैंने _rqId फ़ील्ड को नई आईडी और _rqSessionStateNotFound को सत्य पर सेट करने के लिए प्रतिबिंब का उपयोग किया। नकारात्मकता यह है कि हमें आवेदन के लिए "पूर्ण ट्रस्ट" देना होगा।
[स्वीकृत उत्तर] (http://stackoverflow.com/a/1419508/295686) .NET 1.1 पर लक्षित एक लेख का संदर्भ देता है (और यह वास्तव में सत्र निर्धारण को संबोधित नहीं करता है, केवल पुराना सत्र आईडी पुन: उपयोग करता है), लेकिन यह समाधान अधिक सुरुचिपूर्ण था और हमारे .NET 4.5 एप्लिकेशन (एक एमवीसी साइट और एक वेब फॉर्म साइट) में काम किया। – mlhDev
यह यहाँ एक बहुत पुराने सवाल मैं पुनर्जीवित कर रहा हूँ है, लेकिन समाधान है:
var manager = new SessionIDManager();
bool redirected, isAdded;
manager.SaveSessionID(System.Web.HttpContext.Current,
"5vonjb4mtb1of2fxvhjvkh5d", out redirected, out isAdded);
// sessionId now equals "5vonjb4mtb1of2fxvhjvkh5d"
var sessionId = Session.SessionID;
मुझे पता है, यह कुछ समय हो गया है। लेकिन हमने आपके कोड की कोशिश की और यह हमारे लिए काम नहीं कर रहा है। sessionId "5vonjb4mtb1of2fxvhjvkh5d" के बराबर नहीं है। – mosquito87
मैंने सफलता के साथ ऐसा किया। सत्रीय नए सत्र में बदल जाता है। – pinopino
यह हमें करीब मिला लेकिन पर्याप्त नहीं है - अभी भी इस पर काम कर रहा है। यह सत्र आईडी अपडेट करता है और कुकी अपडेट को नीचे भेजता है जैसा कि आप उम्मीद करेंगे लेकिन हम अभी भी उसी अनुरोध के दौरान सत्र का उपयोग करना चाहते हैं। हम अभी ऐसा करने में सक्षम नहीं हैं - ऐसा लगता है कि सत्र बैग पहले वाला है; अगला अनुरोध नया सत्र बैग देखता है लेकिन हमारे मूल्य वहां नहीं हैं। – mlhDev
- 1. ASP.net/ASP.net एमवीसी
- 2. asp.net
- 3. Asp.net
- 4. ASP.NET
- 5. ASP.NET
- 6. ASP.NET
- 7. asp.net
- 8. ASP.NET
- 9. Asp.NET
- 10. ASP.NET
- 11. asp.net
- 12. ASP.NET
- 13. Asp.Net
- 14. ASP.NET
- 15. ASP.net
- 16. ASP.NET
- 17. ASP.Net
- 18. Asp.net
- 19. ASP.NET
- 20. ASP.NET
- 21. ASP.NET
- 22. ASP.NET
- 23. ASP.NET
- 24. Asp.net
- 25. ASP.NET
- 26. ASP.Net
- 27. ASP.NET
- 28. ASP.NET
- 29. ASP.NET
- 30. Asp.net
मैं विस्फोट इस बारे में सोचते हैं, लेकिन पुनर्जन्म के बाद सत्र वस्तु में सभी वस्तु खो देंगे कि ... – MemoryLeak
जिस ब्लॉग पोस्ट से आप लिंक करते हैं वह अब उपलब्ध नहीं है। –