C# (.NET) में प्राधिकरण और प्रमाणीकरण — पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) में प्राधिकरण और प्रमाणीकरण

आधुनिक .NET प्लेटफॉर्म पर वेब डेवलपमेंट में प्रमाणीकरण (उपयोगकर्ता की पहचान सत्यापित करना) और प्राधिकरण (पहुँच अधिकारों की जाँच) के विषय मौलिक हैं। ASP.NET Core की लाइब्रेरीज़ और अंतर्निहित तंत्र इन कार्यों को लागू करने के लिए शक्तिशाली और लचीला टूलकिट प्रदान करते हैं। इस लेख में, हम JWT (JSON Web Tokens), ASP.NET Core Identity और अंतर्निहित middleware घटकों के उपयोग सहित मुख्य दृष्टिकोणों पर विस्तार से चर्चा करेंगे।



मूल अवधारणाएँ

  • प्रमाणीकरण (Authentication) — यह सत्यापित करने की प्रक्रिया कि उपयोगकर्ता कौन है (जैसे, लॉगिन + पासवर्ड)।
  • प्राधिकरण (Authorization) — यह निर्धारित करने की प्रक्रिया कि उपयोगकर्ता क्या कर सकता है (भूमिकाएँ, नीतियाँ, claims)।
  • Claims-based identity — एक दृष्टिकोण जहाँ उपयोगकर्ता की जानकारी दावों (claims) के एक सेट के रूप में संग्रहीत की जाती है।


ASP.NET Core Identity

ASP.NET Core Identity एक पूर्ण उपयोगकर्ता प्रबंधन प्रणाली है जिसमें पंजीकरण, लॉगिन, पासवर्ड रीसेट, दो-कारक प्रमाणीकरण और भूमिका प्रबंधन शामिल है। यह डेटाबेस में डेटा संग्रहीत करने के लिए Entity Framework Core का उपयोग करता है।

प्रोजेक्ट में Identity जोड़ने के लिए, AddDefaultIdentity को कॉल करना और कनेक्शन स्ट्रिंग कॉन्फ़िगर करना पर्याप्त है। Program.cs में बुनियादी सेटअप का उदाहरण:

using Microsoft.AspNetCore.Identity;using Microsoft.EntityFrameworkCore;using YourApp.Data;

var builder = WebApplication.CreateBuilder(args);

// डेटाबेस कॉन्टेक्स्ट जोड़ेंbuilder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

// Identity जोड़ेंbuilder.Services.AddDefaultIdentity<IdentityUser>(options => { options.SignIn.RequireConfirmedAccount = false; options.Password.RequireDigit = true; options.Password.RequiredLength = 6;}).AddRoles<IdentityRole>().AddEntityFrameworkStores<ApplicationDbContext>();

builder.Services.AddControllersWithViews();

var app = builder.Build();

app.UseAuthentication();app.UseAuthorization();

app.MapRazorPages();app.Run();

इसके बाद, आपके लिए मानक पंजीकरण और लॉगिन पृष्ठ, साथ ही भूमिकाओं की जाँच के लिए विधियाँ उपलब्ध होंगी:

[Authorize(Roles = "Admin")]public IActionResult AdminPanel(){    return View();}


JWT-प्रमाणीकरण (JSON Web Tokens)

JWT पक्षों के बीच JSON ऑब्जेक्ट के रूप में जानकारी स्थानांतरित करने का एक कॉम्पैक्ट और स्व-निहित तरीका है। .NET में, JWT का उपयोग अक्सर REST API और SPA अनुप्रयोगों के निर्माण के लिए किया जाता है। मुख्य लाइब्रेरी Microsoft.AspNetCore.Authentication.JwtBearer है।

Program.cs में JWT सेटअप:

using Microsoft.AspNetCore.Authentication.JwtBearer;using Microsoft.IdentityModel.Tokens;using System.Text;

var builder = WebApplication.CreateBuilder(args);

var key = Encoding.ASCII.GetBytes("YourSuperSecretKeyThatIsAtLeast32CharactersLong!");

builder.Services.AddAuthentication(options =>{ options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;}).AddJwtBearer(options =>{ options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = "yourdomain.com", ValidAudience = "yourdomain.com", IssuerSigningKey = new SymmetricSecurityKey(key) };});

builder.Services.AddAuthorization();builder.Services.AddControllers();

var app = builder.Build();app.UseAuthentication();app.UseAuthorization();app.MapControllers();app.Run();

उदाहरण

अनुशंसाएँ