دسته بندی ها
09:51 1401/04/18

نحوه Redirect صفحه بر اساس نقش کاربر در Asp net core

مشخصات سوال کننده :
کاربر : yasasemani     امتیاز کاربر : 6     رتبه کاربر : 80
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2184
1 نظر
saedbfd : شما مطمئن هستید در دیتابیس کاربران شما به درستی نقش گرفتن ؟ اگر این دستور و دستوری که fateme نوشتن کار نمیکنه ممکنه کاربران شما اصلا نقش ندارن.

امتیاز کاربر : 1664   رتبه کاربر : 1   تاریخ ثبت : 02:18 1401/04/18
هوش مصنوعی

پاسخ هوش مصنوعی

برای اینکه بتوانید کاربران را بر اساس نقش آنها به صفحات مختلف هدایت کنید، باید از متد User.IsInRole() استفاده کنید. در کد شما، به جای استفاده از ClaimTypes.Role.Contains() باید از متد مربوطه استفاده کنید. به این صورت:

public IActionResult Index()
{
    if (User.IsInRole("Sales"))
    {
        return RedirectToAction("Index", "Dashboard");
    }
    else if (User.IsInRole("Trade"))
    {
        return RedirectToAction("Index", "TradeDashboard");
    }
    else
    {
        return RedirectToAction("Index", "Home"); // در صورتیکه کاربر هیچ نقش معتبر نداشته باشد
    }
}

در این کد، ما بررسی می کنیم که آیا کاربر نقش "Sales" یا "Trade" را دارد و بر اساس آن کاربر را به صفحه مناسب هدایت می کنیم. اگر کاربر هیچ یک از این نقش ها را نداشته باشد، می توانید او را به صفحه ای دیگر (مثلاً صفحه اصلی) هدایت کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 12:54 1401/04/18

فکر میکنم بهتره از دستور User.IsInRole استفاده کنید برای کنترل نقش های کاربری :

public IActionResult Index()
{
   if (User.IsInRole("Sales"))
   {
      return RedirectToAction("Index", "Dashboard");
   }
   else
   {
      return RedirectToAction("Index", "TradeDashboard");
   }
}

البته دقت کنید که استفاده از این دستور مستلزم این هست که نقش های کاربری در جدول AspNetRole تعریف شده باشن و کاربر در جدول AspNetUserRoles هم نقش رو دریافت کرده باشه. 

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
1 نظر
yasasemani : نقش ها رو تعریف کردم ولی چیزی که هست چه توی کد پیشنهادی شما و چه توی کد خودم فقط بعد از else جواب میده

امتیاز کاربر : 6   رتبه کاربر : 80   تاریخ ثبت : 01:13 1401/04/18
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود