ASP.Net Identity ব্যবহার করে Authentication

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) Authentication এবং Authorization |
208
208

ASP.Net Identity একটি শক্তিশালী অথেনটিকেশন এবং অথোরাইজেশন ফ্রেমওয়ার্ক, যা ASP.Net অ্যাপ্লিকেশনগুলোতে ইউজার ম্যানেজমেন্ট সহজ এবং সুরক্ষিত করে। এটি ইউজারদের সাইন-ইন, সাইন-আউট, পাসওয়ার্ড ম্যানেজমেন্ট, এবং রোল-বেসড অথোরাইজেশন সিস্টেম সাপোর্ট করে।

ASP.Net Identity ব্যবহার করে Authentication (অথেনটিকেশন) প্রক্রিয়া সেট আপ করতে আমরা সাধারণত ইউজারদের পরিচয় যাচাই করি, যেমন ইউজারের নাম এবং পাসওয়ার্ড যাচাই করা। নিচে ASP.Net Identity ব্যবহার করে Authentication প্রক্রিয়া কীভাবে কাজ করে এবং সেটি কিভাবে সেট আপ করবেন তা আলোচনা করা হলো।


ASP.Net Identity কী?

ASP.Net Identity একটি সম্পূর্ণ ইউজার ম্যানেজমেন্ট সিস্টেম, যা বিশেষত ওয়েব অ্যাপ্লিকেশনগুলিতে ইউজার অথেনটিকেশন এবং অথোরাইজেশন পরিচালনা করতে ব্যবহৃত হয়। এটি ডাটাবেসে ইউজার তথ্য সংরক্ষণ এবং যাচাই করার জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের অথেনটিকেশন যেমন ফেসবুক, গুগল, টুইটার ইত্যাদি সোশ্যাল লগইন, এবং ইমেইল/পাসওয়ার্ড ভিত্তিক লগইন সাপোর্ট করে।

ASP.Net Identity ব্যবহার করে Authentication এর মূল উদ্দেশ্য হলো ইউজারের পরিচয় যাচাই করা (যেমন, সঠিক পাসওয়ার্ড এবং ইউজারনেম) এবং ইউজারের অ্যাক্সেস অনুমোদন বা নিষিদ্ধ করা।


ASP.Net Identity-তে Authentication প্রক্রিয়া

ASP.Net Identity ব্যবহার করে Authentication প্রক্রিয়া সাধারণত নিম্নলিখিত পদক্ষেপে কাজ করে:

1. ইউজার মডেল তৈরি করা

ASP.Net Identity ব্যবহার করতে হলে প্রথমে ইউজার মডেল তৈরি করতে হয়, যা ইউজারের নাম, পাসওয়ার্ড, ইমেইল ঠিকানা এবং অন্যান্য ডেটা ধারণ করবে। এটি সাধারণত IdentityUser ক্লাস থেকে ইনহেরিট করা হয়।

public class ApplicationUser : IdentityUser
{
    // এখানে অতিরিক্ত প্রোপার্টি যোগ করা যাবে
}

2. Database Context তৈরি করা

ASP.Net Identity ডেটাবেস কনটেক্সট তৈরি করতে IdentityDbContext ক্লাস ব্যবহার করা হয়। এটি ইউজার এবং রোল সম্পর্কিত সমস্ত ডেটা পরিচালনা করে।

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

3. Identity Configuration (IdentityConfig.cs)

এটি ASP.Net Identity কনফিগারেশন ফাইল, যেখানে ইউজারের পাসওয়ার্ড নীতি, লকিং পলিসি এবং অন্যান্য সেটিংস কনফিগার করা হয়।

public class IdentityConfig : DbMigrationsConfiguration<ApplicationDbContext>
{
    public IdentityConfig()
    {
        AutomaticMigrationsEnabled = true;
        ContextKey = "ApplicationDbContext";
    }
}

4. Account Controller তৈরি করা

ইউজার অথেনটিকেশন পরিচালনা করতে একটি কন্ট্রোলার তৈরি করা হয়। এই কন্ট্রোলারে সাইন ইন, সাইন আউট এবং পাসওয়ার্ড রিসেটের মতো কার্যক্রম প্রক্রিয়া করা হয়।

public class AccountController : Controller
{
    private readonly ApplicationUserManager _userManager;
    private readonly ApplicationSignInManager _signInManager;

    public AccountController(ApplicationUserManager userManager, ApplicationSignInManager signInManager)
    {
        _userManager = userManager;
        _signInManager = signInManager;
    }

    // সাইন ইন অ্যাকশন
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
            switch (result)
            {
                case SignInStatus.Success:
                    return RedirectToLocal(returnUrl);
                case SignInStatus.LockedOut:
                    return View("Lockout");
                case SignInStatus.RequiresVerification:
                    return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                case SignInStatus.Failure:
                default:
                    ModelState.AddModelError("", "Invalid login attempt.");
                    return View(model);
            }
        }

        return View(model);
    }

    // সাইন আউট অ্যাকশন
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Logout()
    {
        _signInManager.SignOut();
        return RedirectToAction("Index", "Home");
    }
}

5. পাসওয়ার্ড যাচাই এবং সাইন ইন প্রক্রিয়া

PasswordSignInAsync মেথড ব্যবহার করে ইউজারের পাসওয়ার্ড যাচাই করা হয় এবং ইউজার সঠিক হলে তাকে সাইন ইন করা হয়।

var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

6. সোশ্যাল অথেনটিকেশন (Optional)

ASP.Net Identity অন্যান্য সোশ্যাল মিডিয়া (যেমন, গুগল, ফেসবুক, টুইটার) এর মাধ্যমে লগইন সাপোর্ট করে। এটি কনফিগার করতে হলে ASP.Net Identity সেটআপে সোশ্যাল অথেনটিকেশন প্রোভাইডারগুলি কনফিগার করতে হয়।


ASP.Net Identity এর মাধ্যমে Authentication এর সুবিধা

  1. ইউজার ম্যানেজমেন্ট:
    ASP.Net Identity ইউজারের সাইন আপ, লগ ইন, পাসওয়ার্ড রিসেট, রোল ম্যানেজমেন্ট এবং অথোরাইজেশন পরিচালনা করতে সহজ উপায় প্রদান করে।
  2. কাস্টমাইজেশন:
    এটি ইউজার মডেল এবং ক্লাস কাস্টমাইজ করতে সাহায্য করে, যেখানে ডেভেলপাররা তাদের প্রয়োজন অনুযায়ী অতিরিক্ত ফিল্ড যোগ করতে পারেন।
  3. নিরাপত্তা:
    পাসওয়ার্ড হ্যাশিং এবং সুরক্ষিত অথেনটিকেশন মেকানিজমের মাধ্যমে এটি সুরক্ষা নিশ্চিত করে। এছাড়াও, দুই-ফ্যাক্টর অথেনটিকেশন (2FA) এবং অন্যান্য সিকিউরিটি ফিচার সাপোর্ট করে।
  4. সোশ্যাল মিডিয়া ইন্টিগ্রেশন:
    এটি ফেসবুক, গুগল, টুইটার ইত্যাদি সোশ্যাল মিডিয়া প্রোভাইডারের মাধ্যমে লগইন সাপোর্ট করে।

সারমর্ম

ASP.Net Identity একটি শক্তিশালী অথেনটিকেশন সিস্টেম, যা ASP.Net অ্যাপ্লিকেশনে ইউজারের সাইন-ইন, সাইন-আউট, পাসওয়ার্ড রিসেট এবং অন্যান্য ইউজার ম্যানেজমেন্ট কার্যক্রম সুরক্ষিতভাবে পরিচালনা করে। এটি সোশ্যাল মিডিয়া লগইন সাপোর্ট, কাস্টম ইউজার মডেল এবং নিরাপদ পাসওয়ার্ড হ্যাশিং সুবিধা প্রদান করে। ASP.Net Identity এর মাধ্যমে Authentication প্রক্রিয়া সম্পূর্ণভাবে কনফিগার এবং কাস্টমাইজ করা সম্ভব।

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

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

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

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