संदेश

अप्रैल, 2026 की पोस्ट दिखाई जा रही हैं

C# Difference between StreamReader and FileStream

C# में FileStream और StreamReader दोनों का उपयोग फाइलों के साथ काम करने के लिए किया जाता है, लेकिन उनके काम करने का तरीका और उद्देश्य बिल्कुल अलग हैं। सरल शब्दों में कहें तो: FileStream "कच्चे डेटा" (Bytes) के लिए है, जबकि StreamReader "टेक्स्ट" (Characters) के लिए है। 1. FileStream (The Byte Specialist) FileStream एक लो-लेवल क्लास है जो फाइल को Bytes (0s and 1s) के रूप में पढ़ती या लिखती है। क्या करता है: यह सीधे ऑपरेटिंग सिस्टम के साथ फाइल खोलने, पढ़ने और लिखने का काम करता है। डेटा टाइप: यह सिर्फ byte[] (बाइट ऐरे) के साथ काम करता है। उपयोग: इमेज, वीडियो, ऑडियो, या किसी भी बाइनरी फाइल को हैंडल करने के लिए। विशेषता: आप फाइल में किसी भी पोजीशन पर जा सकते हैं (Seeking)। उदाहरण: using (FileStream fs = new FileStream("image.jpg", FileMode.Open)) { // यहाँ डेटा बाइट्स के रूप में मिलेगा } 2. StreamReader (The Text Specialist) StreamReader एक हाई-लेवल क्लास है जो किसी स्ट्रीम (जैसे FileStream) के ऊपर बैठती है और बाइट्स को Characters/Strings में बदल...

ASP.NET Core Comparison between CookieOptions and SessionOptions

ASP.NET Core में CookieOptions और SessionOptions दोनों कुकी से जुड़े हैं, लेकिन उनका उद्देश्य अलग-अलग स्तर पर होता है। एक generic cookie control के लिए है, जबकि दूसरा session management के लिए। 1. CookieOptions क्या है? CookieOptions का उपयोग तब होता है जब आप manually cookie create या modify करते हैं। Example: Response.Cookies.Append("MyCookie", "value", new CookieOptions { Expires = DateTimeOffset.UtcNow.AddDays(7), HttpOnly = true, Secure = true, SameSite = SameSiteMode.Strict }); Key Points: Direct cookie creation/control Client-side behavior define करता है किसी भी custom cookie पर लागू 2. SessionOptions क्या है? SessionOptions का उपयोग ASP.NET Core के session middleware को configure करने के लिए होता है। Example: builder.Services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(20); options.Cookie.HttpOnly = true; options.Cookie.IsEssential = true; }); Key Points: Session system को configure करता ...

ASP.NET Core Razor Pages Application to Create Session Cookie and Read its Data

चित्र
सबसे पहले एक ASP.NET Core Razor Pages एप्लीकेशन बनाते हैं और उसमे default सेशन सर्विस को Program.cs में जोड़ देते हैं: builder.Services.AddSession(); सर्विस जोड़ना ही पर्याप्त नही हैं. जिस तरह घर में कूलर लगा देने से रूम ठंडा नही हो जाता बल्कि उस कूलर को चलाने के बाद ही रूम ठंडा हो पाता है ठीक उसी तरह एप्लीकेशन में सेशन सर्विस को जोड़ देना ही पर्याप्त नही है उस सर्विस को यूज करने के लिए सेशन middleware को HTTP Pipeline में जोड़ना भी अनिवार्य है ताकि एप्लीकेशन सेशन कुकी को ब्राउज़र के पास भेज सके और सेशन कुकी को ब्राउज़र से रिक्वेस्ट में प्राप्त कर सके।   app.UseSession(); ध्यान दीजिए कि सेशन सर्विस और सेशन middleware द्वारा सेशन कुकी का निर्माण नहीं किया जाता है बल्कि ये कुकी के कॉन्फ़िगरेशन और हैंडलिंग में योगदान देते हैं. एप्लीकेशन द्वारा ही सेशन कुकी का निर्माण किया जाता है और सेशन कुकी के निर्माण के बाद सेशन सर्विस और सेशन middleware की मदद से उसे ब्राउज़र के पास भेज दिया जाता है।  Program file के भीतर कुकी के कॉन्फ़िगरेशन के बाद कोड ऐसा दीखता है: var builder = WebApplica...

All About Session and Session Cookie in Depth

चित्र
सेशन स्टेट मैनेजमेंट एक ऐसी तकनीक है जिसका उपयोग यूज़र के डेटा को कुछ समय के लिए सर्वर पर स्टोर करके रखने के लिए किया जाता है, ताकि सर्वर यूज़र की पहचान बनाए रख सके।  जैसा कि हम जानते हैं कि एचटीटीपी(HyperText Transfer Protocol) एक स्टेटलेस प्रोटोकॉल है तो प्रत्येक रिक्वेस्ट के बाद यूजर का इनफॉरमेशन नष्ट हो जाता है और सर्वर के पास यूजर का कोई स्थायी इनफॉरमेशन संचित नहीं होता है।  यदि यूजर के इनफॉरमेशन को सर्वर को कुछ समय के लिए संचित करके रखना हो तो इसके लिए सर्वर स्टेट मैनेजमेंट की तकनीक का उपयोग करता है। इससे यूज़र की पहचान (identity) लगातार बनी रहती है। इसके अंतर्गत यूजर के इनफार्मेशन को की वैल्यू युग्म के रूप में सर्वर के मेमोरी के भीतर या किसी डाटाबेस के भीतर संचित करके रखा जाता है। चूँकि यूजर का इनफॉरमेशन सर्वर पर संचित किया जाता है अतः डाटा सुरक्षित रहता है लेकिन स्टेट मैनेजमेंट के लिए इतना ही पर्याप्त नहीं है।  यूजर के इनफॉरमेशन को सर्वर साइड संचित करने के साथ-साथ यूजर से संबंधित एक सेशन आईडी जनरेट किया जाता है जिसे यूजर के पास कुकी के रूप में भेज दिया जाता ह...

Implementing Cookie Authentication Scheme in ASP.NET Core Refined

Cookie Authentication in Razor Pages हमने पिछली पोस्ट में देखा कि साइन-इन प्रक्रिया के दौरान ऑथेंटिकेशन कुकी कैसे बनाई जाती है। उस उदाहरण में हमने एक निश्चित (fixed) यूज़रनेम और पासवर्ड का उपयोग किया था, जो वास्तविक एप्लीकेशन की तुलना में काफी सरल था। वह केवल ऑथेंटिकेशन कुकी की अवधारणा समझाने के लिए किया गया था। अब हम यह समझेंगे कि वास्तविक एप्लीकेशन में प्रत्येक यूज़र के यूज़रनेम और पासवर्ड को सुरक्षित तरीके से कैसे संग्रहीत (store) किया जाता है, तथा साइन-इन के समय उनका मिलान (validate) कैसे किया जाता है। वास्तविक एप्लीकेशन में यूज़र की जानकारी को किसी डेटाबेस (जैसे SQL Server, SQLite आदि) या फ़ाइल (जैसे CSV या JSON) में सुरक्षित रूप से रखा जाता है। इस उदाहरण में हम सरलता के लिए CSV फ़ाइल का उपयोग करेंगे। महत्वपूर्ण सुरक्षा बिंदु यूज़र की जानकारी को web root (wwwroot) के अंदर नहीं रखना चाहिए। क्योंकि web root के अंदर की फ़ाइलें सीधे ब्राउज़र से एक्सेस की जा सकती हैं। इसलिए CSV फ़ाइल को wwwroot के बाहर रखा जाएगा। कार्यप्रवाह (Flow) 1. यूज़र फॉर्म भरकर रजिस्टर करता है → ...

Implementing Cookie Authentication Scheme in ASP.NET Core Application

इस संक्षिप्त लेख में ASP.NET Core एप्लीकेशन के भीतर कुकी ऑथेंटिकेशन स्क्रीम को कैसे इंप्लीमेंट किया जाता है इसके बारे में समझेंगे. जब एक बार एप्लीकेशन के भीतर ऑथेंटिकेशन इंप्लीमेंट हो जाता है तो उसके बाद एप्लीकेशन के किसी रिसोर्स को एक्सेस करने के लिए यह मान कर चलेंगे यूजर का ऑथेंटिकेटेड होना जरूरी है इसके लिए उस रिसोर्स के ऊपर [Authorize] नामक अटरीब्यूट का उपयोग करेंगे. यदि यूजर ऑथेंटिकेटेड नहीं होगा तो ऐसी स्थिति में यूजर को लोगिन करने के लिए एप्लीकेशन बाध्य करेगा और यूजर को लॉगिन पेज पर रीडायरेक्ट कर देगा इसके लिए एप्लीकेशन के प्रोग्राम फाइल के भीतर कुकी का कॉन्फ़िगरेशन करना होगा. कुकी का कॉन्फ़िगरेशन करने से पहले ऑथेंटिकेशन सर्विस को लागू करना होगा. ऑथेंटिकेशन सर्विस को लागू करने के लिए निम्नलिखित एक्सटेंशन मेथड का उपयोग किया जाता है builder.Services.AddAuthentication(options => { options.DefaultAuthenticateScheme = "Cookies"; options.DefaultSignInScheme = "Cookies"; }); इस एक्सटेंशन मेथड को कुकी ऑथेंटिकेशन के स्कीम के लिए कॉन्फ़िगर किया जा सकता ह...

ASP.NET Core एप्लीकेशन के भीतर ऑथेंटिकेशन फीचर को शामिल करने का अभिप्राय

एप्लीकेशन के भीतर ऑथेंटिकेशन फीचर को शामिल करने का क्या अभिप्राय हो सकता है, इस को समझते हैं। जब कोई यूजर एप्लीकेशन के पास रिक्वेस्ट भेजता है तो यह एप्लीकेशन कैसे पहचान करेगा कि यह रिक्वेस्ट फालना यूजर के द्वारा ही भेजा जा रहा है। इसके लिए यह जरूरी है कि ऑथेंटिकेशन के लिए कोई स्कीम हो। कहने का अभिप्राय है कि यूजर के इनफॉरमेशन को किसी तरीके से एप्लीकेशन के द्वारा स्टोर कर लिया जाए और इसको सुरक्षित तरीके से क्लाइंट ब्राउज़र के पास भेज दिया जाए। जब-जब ब्राउज़र के द्वारा रिक्वेस्ट भेजा जाए तो उस इनफॉरमेशन को एप्लीकेशन क्लाइंट के पास भेजें और एप्लीकेशन जांच करें जो इनफॉरमेशन उसके पास स्टोर है क्या वही इनफॉरमेशन क्लाइंट के द्वारा भेजा जा रहा है यदि हां तो यूजर को ऑथेंटिकेटेड मान लिया जाएगा यदि ना तो यूजर को अनऑथेंटिकेटेड कर दिया जाएगा। अब सवाल है कि यूजर को ऑथेंटिकेशन करने के लिए क्या स्कीम हो सकता है?  देखिए यूजर को ऑथेंटिकेशन करने के लिए अलग-अलग टेक्नोलॉजी के द्वारा अलग-अलग उपाय संभव है उदाहरण के लिए कूकी का प्रयोग करके भी हो यूजर को ऑथेंटिकेशन किया जा सकता है इसके अंतर्...