Authentication এবং Authorization ফিল্টার

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) ফিল্টার এবং অ্যাট্রিবিউট (Filters and Attributes) |
206
206

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


Authentication ফিল্টার

Authentication হলো প্রক্রিয়া যা নিশ্চিত করে যে ব্যবহারকারী অ্যাপ্লিকেশনে প্রবেশ করার জন্য বৈধ। Authentication ফিল্টার ASP.Net MVC 5 থেকে অন্তর্ভুক্ত করা হয়েছে, যা Global, Controller, বা Action লেভেলে প্রয়োগ করা যায়।

Authentication ফিল্টার তৈরি

নিচে একটি কাস্টম Authentication ফিল্টার তৈরি করার উদাহরণ দেওয়া হলো:

using System.Web.Mvc;

public class CustomAuthenticationFilter : ActionFilterAttribute, IAuthenticationFilter
{
    public void OnAuthentication(AuthenticationContext filterContext)
    {
        var user = filterContext.HttpContext.User;
        if (user == null || !user.Identity.IsAuthenticated)
        {
            filterContext.Result = new HttpUnauthorizedResult();
        }
    }

    public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
    {
        // Optional: Additional actions after authentication challenge
    }
}

ফিল্টার প্রয়োগ করা:

[CustomAuthenticationFilter]
public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

Authorization ফিল্টার

Authorization ফিল্টার নির্ধারণ করে ব্যবহারকারী নির্দিষ্ট অ্যাকশন বা রিসোর্সে অ্যাক্সেস করতে পারবে কিনা। এটি AuthorizeAttribute ব্যবহার করে সহজে প্রয়োগ করা যায়।

Authorization ফিল্টার ব্যবহার

AuthorizeAttribute একটি বিল্ট-ইন ফিল্টার, যা ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।

[Authorize]
public class AdminController : Controller
{
    public IActionResult Dashboard()
    {
        return View();
    }
}

নির্দিষ্ট রোল বা ব্যবহারকারীদের জন্য প্রয়োগ করা:

[Authorize(Roles = "Admin")]
public class AdminController : Controller
{
    public IActionResult Dashboard()
    {
        return View();
    }
}

[Authorize(Users = "specificUser@example.com")]
public class UserController : Controller
{
    public IActionResult Profile()
    {
        return View();
    }
}

Custom Authorization ফিল্টার

প্রয়োজন অনুযায়ী একটি কাস্টম Authorization ফিল্টার তৈরি করা যায়:

using System.Web.Mvc;

public class CustomAuthorizationFilter : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        var user = httpContext.User;
        return user != null && user.Identity.IsAuthenticated && user.IsInRole("Admin");
    }

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.Result = new RedirectResult("/Account/Login");
    }
}

কন্ট্রোলারে প্রয়োগ:

[CustomAuthorizationFilter]
public class AdminController : Controller
{
    public IActionResult Dashboard()
    {
        return View();
    }
}

Authentication এবং Authorization-এর ব্যবহার

Global Level:
Global ফিল্টার হিসেবে Authentication এবং Authorization ফিল্টার যোগ করতে পারেন Global.asax বা FilterConfig.cs-এ:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new AuthorizeAttribute());
    filters.Add(new CustomAuthenticationFilter());
}

Controller Level:
কোনো নির্দিষ্ট কন্ট্রোলারে ফিল্টার প্রয়োগ করতে কন্ট্রোলারের উপরে অ্যাট্রিবিউট যুক্ত করুন।

Action Level:
নির্দিষ্ট অ্যাকশনে ফিল্টার প্রয়োগ করতে অ্যাকশনের উপরে অ্যাট্রিবিউট যুক্ত করুন।


Authentication এবং Authorization-এর পার্থক্য

বিষয়AuthenticationAuthorization
উদ্দেশ্যব্যবহারকারী বৈধ কিনা তা যাচাই করে।ব্যবহারকারী নির্দিষ্ট রিসোর্স বা অ্যাকশনে অ্যাক্সেস করতে পারবে কিনা তা নিয়ন্ত্রণ করে।
প্রয়োগের স্তরপ্রথম ধাপে (লগইন প্রক্রিয়ার সময়)।পরবর্তী ধাপে (অ্যাক্সেস নিয়ন্ত্রণ)।
ফিল্টার টাইপIAuthenticationFilterIAuthorizationFilter

সারমর্ম

ASP.Net MVC-তে Authentication এবং Authorization ফিল্টার অ্যাপ্লিকেশনের নিরাপত্তা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। Authentication ব্যবহারকারীর পরিচয় যাচাই করে এবং Authorization ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণ করে। বিল্ট-ইন এবং কাস্টম ফিল্টার ব্যবহার করে অ্যাপ্লিকেশনকে আরও সুরক্ষিত করা যায়।

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

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

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

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