संदेश

HTTP Basic Authentication in ASP.NET Core Razor Pages

पिछ्ला सम्बन्धित लेख  HTTP Basic Authentication फ्लो ASP.NET Core Razor Pages एप्लीकेशन बनाए जिसका नाम BasicAuthDemo है। प्रोजेक्ट file इस प्रकार है: <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> </Project> HTTP Basic Authentication को हैंडल करने के लिए निम्न BasicAuthenticationHandler क्लास file बनाए।  ध्यान दीजिए की सरलता के लिए यूजरनाम और पासवर्ड हार्ड कोडेड है। वास्तव में इसे किसी डेटाबेस में रखना चाहिए।   using Microsoft.AspNetCore.Authentication; using Microsoft.Extensions.Options; using System.Net.Http.Headers; using System.Security.Claims; using System.Text; using System.Text.Encodings.Web; namespace BasicAuthDemo { public class BasicAuthenticationHandler : AuthenticationHandler<AuthenticationSchemeOptions> { public B...

HTTP Basic Authentication Flow Explained

चित्र
 बेसिक ऑथेंटिकेशन के लिए निम्नलिखित चरणों का समझना जरूरी है। प्रथम चरण में ब्राउज़र के द्वारा किसी ऐसे रिसोर्स के लिए रिक्वेस्ट भेजा जाता है जो केवल ऑथेंटिकेटेड यूजर को ही मिल सकता है। इस रिसोर्स को प्राप्त करने के लिए सर्वर रिस्पांस के रूप में www-authenticate response हेडर को भेजता है। यह यूजर को चैलेंज करने के लिए ऑथेंटिकेशन तरकीब होता है। जब क्लाइंट इस रिस्पांस header को प्राप्त करता है तो उसे ज्ञात हो जाता है कि प्रतिबंधित रिसोर्स को पाने के लिए उसे बेसिक ऑथेंटिकेशन स्कीम का अनुपालन करना है क्योंकि रेस्पोंस हेडर WWW-Authenticate: Basic Realm="Admin" भेजा जाता है। ध्यान दीजिए कि realm का मान MyApp, Admin, SecureApp इत्यादि हो सकता है। अतः अगली बार रिक्वेस्ट में क्लाइंट Authentication request हेडर को भेजता है इस header के भीतर base64 में encode किया हुआ यूजर नेम और पासवर्ड होता है। ध्यान दीजिए की आप तौर पर जब ब्राउज़र को www-authenticate रिस्पांस हेडर प्राप्त होता है तो अगले रिक्वेस्ट में यूजरनेम और पासवर्ड को प्राप्त करने के लिए एक इनपुट बॉक्स प्रकट करता है। यह ब्राउज़र क...

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 में बदल...