ASP.Net Identity একটি শক্তিশালী অথেনটিকেশন এবং অথোরাইজেশন ফ্রেমওয়ার্ক, যা ASP.Net অ্যাপ্লিকেশনগুলোতে ইউজার ম্যানেজমেন্ট সহজ এবং সুরক্ষিত করে। এটি ইউজারদের সাইন-ইন, সাইন-আউট, পাসওয়ার্ড ম্যানেজমেন্ট, এবং রোল-বেসড অথোরাইজেশন সিস্টেম সাপোর্ট করে।
ASP.Net Identity ব্যবহার করে Authentication (অথেনটিকেশন) প্রক্রিয়া সেট আপ করতে আমরা সাধারণত ইউজারদের পরিচয় যাচাই করি, যেমন ইউজারের নাম এবং পাসওয়ার্ড যাচাই করা। নিচে ASP.Net Identity ব্যবহার করে Authentication প্রক্রিয়া কীভাবে কাজ করে এবং সেটি কিভাবে সেট আপ করবেন তা আলোচনা করা হলো।
ASP.Net Identity একটি সম্পূর্ণ ইউজার ম্যানেজমেন্ট সিস্টেম, যা বিশেষত ওয়েব অ্যাপ্লিকেশনগুলিতে ইউজার অথেনটিকেশন এবং অথোরাইজেশন পরিচালনা করতে ব্যবহৃত হয়। এটি ডাটাবেসে ইউজার তথ্য সংরক্ষণ এবং যাচাই করার জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের অথেনটিকেশন যেমন ফেসবুক, গুগল, টুইটার ইত্যাদি সোশ্যাল লগইন, এবং ইমেইল/পাসওয়ার্ড ভিত্তিক লগইন সাপোর্ট করে।
ASP.Net Identity ব্যবহার করে Authentication এর মূল উদ্দেশ্য হলো ইউজারের পরিচয় যাচাই করা (যেমন, সঠিক পাসওয়ার্ড এবং ইউজারনেম) এবং ইউজারের অ্যাক্সেস অনুমোদন বা নিষিদ্ধ করা।
ASP.Net Identity ব্যবহার করে Authentication প্রক্রিয়া সাধারণত নিম্নলিখিত পদক্ষেপে কাজ করে:
ASP.Net Identity ব্যবহার করতে হলে প্রথমে ইউজার মডেল তৈরি করতে হয়, যা ইউজারের নাম, পাসওয়ার্ড, ইমেইল ঠিকানা এবং অন্যান্য ডেটা ধারণ করবে। এটি সাধারণত IdentityUser
ক্লাস থেকে ইনহেরিট করা হয়।
public class ApplicationUser : IdentityUser
{
// এখানে অতিরিক্ত প্রোপার্টি যোগ করা যাবে
}
ASP.Net Identity ডেটাবেস কনটেক্সট তৈরি করতে IdentityDbContext
ক্লাস ব্যবহার করা হয়। এটি ইউজার এবং রোল সম্পর্কিত সমস্ত ডেটা পরিচালনা করে।
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
এটি ASP.Net Identity কনফিগারেশন ফাইল, যেখানে ইউজারের পাসওয়ার্ড নীতি, লকিং পলিসি এবং অন্যান্য সেটিংস কনফিগার করা হয়।
public class IdentityConfig : DbMigrationsConfiguration<ApplicationDbContext>
{
public IdentityConfig()
{
AutomaticMigrationsEnabled = true;
ContextKey = "ApplicationDbContext";
}
}
ইউজার অথেনটিকেশন পরিচালনা করতে একটি কন্ট্রোলার তৈরি করা হয়। এই কন্ট্রোলারে সাইন ইন, সাইন আউট এবং পাসওয়ার্ড রিসেটের মতো কার্যক্রম প্রক্রিয়া করা হয়।
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");
}
}
PasswordSignInAsync
মেথড ব্যবহার করে ইউজারের পাসওয়ার্ড যাচাই করা হয় এবং ইউজার সঠিক হলে তাকে সাইন ইন করা হয়।
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
ASP.Net Identity অন্যান্য সোশ্যাল মিডিয়া (যেমন, গুগল, ফেসবুক, টুইটার) এর মাধ্যমে লগইন সাপোর্ট করে। এটি কনফিগার করতে হলে ASP.Net Identity সেটআপে সোশ্যাল অথেনটিকেশন প্রোভাইডারগুলি কনফিগার করতে হয়।
ASP.Net Identity একটি শক্তিশালী অথেনটিকেশন সিস্টেম, যা ASP.Net অ্যাপ্লিকেশনে ইউজারের সাইন-ইন, সাইন-আউট, পাসওয়ার্ড রিসেট এবং অন্যান্য ইউজার ম্যানেজমেন্ট কার্যক্রম সুরক্ষিতভাবে পরিচালনা করে। এটি সোশ্যাল মিডিয়া লগইন সাপোর্ট, কাস্টম ইউজার মডেল এবং নিরাপদ পাসওয়ার্ড হ্যাশিং সুবিধা প্রদান করে। ASP.Net Identity এর মাধ্যমে Authentication প্রক্রিয়া সম্পূর্ণভাবে কনফিগার এবং কাস্টমাইজ করা সম্ভব।
common.read_more