ASP.Net Core Identity ব্যবহার

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) Authentication এবং Authorization |
234
234

ASP.NET Core Identity একটি শক্তিশালী ফ্রেমওয়ার্ক যা Authentication এবং Authorization সিস্টেম সহজভাবে পরিচালনা করতে সাহায্য করে। এটি user registration, login, role management, এবং password recovery সহ অনেক গুরুত্বপূর্ণ সিকিউরিটি ফিচার প্রোভাইড করে। ASP.NET Core Identity ব্যবহার করে ডেভেলপাররা তাদের ওয়েব অ্যাপ্লিকেশনগুলোর জন্য নিরাপদ এবং স্কেলেবল ইউজার অথেন্টিকেশন ও অথোরাইজেশন সিস্টেম তৈরি করতে পারেন।

ASP.NET Core Identity ফ্রেমওয়ার্ক ডিফল্টভাবে একটি SQL ডেটাবেস ব্যবহার করে ইউজার ডেটা সংরক্ষণ করে, কিন্তু আপনি চাইলে অন্য ডেটাবেস সিস্টেমও ব্যবহার করতে পারবেন। এটি Microsoft.AspNetCore.Identity প্যাকেজের মাধ্যমে ইমপ্লিমেন্ট করা হয় এবং সাধারণত একটি DbContext ক্লাসের মাধ্যমে ডেটাবেসে ব্যবহৃত হয়।


ASP.Net Core Identity এর প্রধান বৈশিষ্ট্যসমূহ


  1. User Authentication
    ASP.NET Core Identity সিস্টেম ইউজারদের যাচাই করে যাতে তারা অ্যাপ্লিকেশনটিতে লগ ইন করতে পারেন। এটি username/password এর মাধ্যমে ইউজার অথেন্টিকেশন প্রক্রিয়া সম্পাদন করে।
  2. Role-based Authorization
    ASP.NET Core Identity রোল ভিত্তিক অথোরাইজেশন সমর্থন করে। এর মাধ্যমে আপনি নির্দিষ্ট ইউজারদের নির্দিষ্ট কার্যাবলীতে অনুমতি দিতে পারেন। উদাহরণস্বরূপ, "Admin" রোলের ইউজারদের শুধুমাত্র অ্যাডমিন প্যানেল অ্যাক্সেস দেওয়ার জন্য।
  3. Claims-based Authorization
    Identity সিস্টেমে ইউজারের claims (যেমন ইউজারের বয়স, অবস্থান, বা কোনো বিশেষ অনুমতি) ব্যবহার করে অথোরাইজেশন প্রয়োগ করা যায়।
  4. Password Recovery and Reset
    Identity সিস্টেম ইউজারের জন্য পাসওয়ার্ড রিসেট করার ফিচার প্রদান করে। যদি ইউজার পাসওয়ার্ড ভুলে যায়, তারা ইমেইল বা টেলিফোনের মাধ্যমে পাসওয়ার্ড রিসেট করতে পারে।
  5. Two-Factor Authentication (2FA)
    ASP.NET Core Identity সিস্টেম দুই স্তরের নিরাপত্তা (2FA) সাপোর্ট করে, যেখানে ইউজার তার পাসওয়ার্ডের পাশাপাশি একটি অতিরিক্ত কোড ব্যবহার করে লগ ইন করতে পারেন। এই কোডটি সাধারণত SMS বা ইমেইল মারফত পাঠানো হয়।
  6. External Login Providers
    ASP.NET Core Identity গুগল, ফেসবুক, গিটহাব এবং অন্যান্য OAuth 2.0 প্রদানকারীদের মাধ্যমে লগইন করতে সহায়তা করে, যার ফলে ইউজাররা তাদের স্যোশাল মিডিয়া অ্যাকাউন্ট ব্যবহার করে অ্যাপ্লিকেশনে লগ ইন করতে পারেন।

ASP.Net Core Identity সেটআপ এবং কনফিগারেশন


ASP.NET Core Identity ফ্রেমওয়ার্ক ব্যবহার শুরু করার জন্য কিছু নির্দিষ্ট স্টেপ অনুসরণ করতে হয়।

1. Identity প্যাকেজ ইনস্টল করা

প্রথমে আপনাকে Microsoft.AspNetCore.Identity.EntityFrameworkCore প্যাকেজটি ইনস্টল করতে হবে, যা Identity সিস্টেমের সঙ্গে Entity Framework এর ইন্টিগ্রেশন প্রদান করে। Visual Studio-তে NuGet Package Manager ব্যবহার করে এটি ইনস্টল করা যেতে পারে।

Install-Package Microsoft.AspNetCore.Identity.EntityFrameworkCore

2. Identity DbContext কনফিগারেশন

IdentityDbContext ক্লাসটি ডিফল্টভাবে ব্যবহার করা হয়, যা Identity সম্পর্কিত ডেটা সঞ্চয় এবং পরিচালনা করে। এটি আপনার অ্যাপ্লিকেশন এর DbContext থেকে ইনহেরিট হয়।

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}

এখানে, ApplicationUser হলো ইউজার ক্লাস যা আপনি কাস্টমাইজ করতে পারেন।

3. Startup ক্লাসে Identity কনফিগারেশন

Startup.cs ফাইলের মধ্যে Identity কনফিগার করতে হয়। নিচে উদাহরণ দেওয়া হলো:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    
    services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

    services.AddControllersWithViews();
}

এখানে AddIdentity মেথড ব্যবহার করে ApplicationUser এবং IdentityRole ক্লাসগুলো কনফিগার করা হয়। এটি ডেটাবেসে ইউজার এবং রোল ম্যানেজমেন্ট সিস্টেম তৈরি করে।

4. Identity Middleware কনফিগারেশন

Configure মেথডে Identity middleware কনফিগার করতে হয়, যা অথেন্টিকেশন এবং অথোরাইজেশন প্রক্রিয়া পরিচালনা করে।

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseAuthentication();  // Enable Authentication
    app.UseAuthorization();   // Enable Authorization

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

UseAuthentication() এবং UseAuthorization() মেথডগুলো ব্যবহার করে লগইন এবং অথোরাইজেশন প্রক্রিয়া সম্পাদন করা হয়।


ASP.Net Core Identity এর ব্যবহার


ASP.NET Core Identity ব্যবহার করে কিছু সাধারণ কার্যাবলী:

1. ইউজার রেজিস্ট্রেশন

public class RegisterModel : PageModel
{
    private readonly UserManager<ApplicationUser> _userManager;
    private readonly SignInManager<ApplicationUser> _signInManager;

    public RegisterModel(UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signInManager)
    {
        _userManager = userManager;
        _signInManager = signInManager;
    }

    [BindProperty]
    public RegisterInputModel Input { get; set; }

    public class RegisterInputModel
    {
        [Required]
        public string UserName { get; set; }

        [Required]
        [DataType(DataType.Password)]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        public string ConfirmPassword { get; set; }
    }

    public async Task<IActionResult> OnPostAsync()
    {
        if (ModelState.IsValid)
        {
            var user = new ApplicationUser { UserName = Input.UserName };
            var result = await _userManager.CreateAsync(user, Input.Password);
            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(user, isPersistent: false);
                return RedirectToPage("/Index");
            }
            else
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
        }
        return Page();
    }
}

এটি একটি ইউজার রেজিস্ট্রেশন পেজের উদাহরণ, যেখানে UserManager ব্যবহার করে নতুন ইউজার তৈরি করা হয়।

2. ইউজার লগইন

public class LoginModel : PageModel
{
    private readonly SignInManager<ApplicationUser> _signInManager;

    public LoginModel(SignInManager<ApplicationUser> signInManager)
    {
        _signInManager = signInManager;
    }

    [BindProperty]
    public LoginInputModel Input { get; set; }

    public class LoginInputModel
    {
        [Required]
        public string UserName { get; set; }

        [Required]
        [DataType(DataType.Password)]
        public string Password { get; set; }
    }

    public async Task<IActionResult> OnPostAsync()
    {
        if (ModelState.IsValid)
        {
            var result = await _signInManager.PasswordSignInAsync(Input.UserName, Input.Password, false, false);
            if (result.Succeeded)
            {
                return RedirectToPage("/Index");
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Invalid login attempt.");
            }
        }
        return Page();
    }
}

এটি একটি লগইন পেজের উদাহরণ, যেখানে SignInManager ব্যবহার করে ইউজারের লগইন যাচাই করা হয়।


সারাংশ

ASP.NET Core Identity হলো একটি শক্তিশালী সিকিউরিটি ফ্রেমওয়ার্ক, যা অ্যাপ্লিকেশনগুলিতে ইউজার অথেন্টিকেশন এবং অথোরাইজেশন সহজে এবং নিরাপদভাবে বাস্তবায়ন করতে সহায়তা করে। এটি বিভিন্ন নিরাপত্তা ফিচার যেমন User Registration, Login, Role-based Authorization, Password Recovery, এবং Two-Factor Authentication (2FA) সহ ইউজার ম্যানেজমেন্টের জন্য সম্পূর্ণ সম

াধান প্রদান করে। Identity ফ্রেমওয়ার্ক ব্যবহার করে ডেভেলপাররা তাদের অ্যাপ্লিকেশনগুলির নিরাপত্তা কার্যক্রম শক্তিশালী করতে পারে এবং কাস্টম ইউজার মডেল তৈরি ও কনফিগার করতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion