نحوه Redirect صفحه بر اساس نقش کاربر در Asp net core
سلام وقت بخیر
من پروژه رو با net 5. نوشتم و از جداول identity برای لاگین استفاده کردم ... الان سوالی که مطرح هست اینه که دو تا فرم داشبورد دارم که میخواهم بر اساس اینکه کاربر با کدام نقش لاگین می کند بتونه اون صفحه رو ببینه ... دو تا نقش کاربری sales , trade دارم این کدوم رو نوشتم ولی کار نمی کنه و همه کاربران من به صفحه TradeDashboard هدایت می شن
public IActionResult Index()
{
if (ClaimTypes.Role.Contains("Sales"))
{
return RedirectToAction("Index", "Dashboard");
}
else
{
return RedirectToAction("Index", "TradeDashboard");
}
}
پاسخ هوش مصنوعی
برای اینکه بتوانید کاربران را بر اساس نقش آنها به صفحات مختلف هدایت کنید، باید از متد 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" را دارد و بر اساس آن کاربر را به صفحه مناسب هدایت می کنیم. اگر کاربر هیچ یک از این نقش ها را نداشته باشد، می توانید او را به صفحه ای دیگر (مثلاً صفحه اصلی) هدایت کنید.
فکر میکنم بهتره از دستور User.IsInRole استفاده کنید برای کنترل نقش های کاربری :
public IActionResult Index()
{
if (User.IsInRole("Sales"))
{
return RedirectToAction("Index", "Dashboard");
}
else
{
return RedirectToAction("Index", "TradeDashboard");
}
}
البته دقت کنید که استفاده از این دستور مستلزم این هست که نقش های کاربری در جدول AspNetRole تعریف شده باشن و کاربر در جدول AspNetUserRoles هم نقش رو دریافت کرده باشه.
- کم کردن حجم فیلم توسط کد در Asp net core
- چه کسانی استوری تلگرام را می بینند ؟
- برای کسب و کار تلگرام پرمیوم بهتره یا واتس اپ بیزینس ؟
- جلوگیری از انتشار غیرمجاز مطالب در کانال های تلگرامی
- تفاوت های تلگرام و واتس اپ چیست ؟
- چرا استوری های واتس اپ برای دوستان نمایش داده نمیشن ؟
- چند تا استوری رایگان می تونیم تلگرام بذاریم ؟
- خطای Severity Code Description Project هنگام استارت پروژه
- کار نکردن navBar و sideBar در پروژه Asp.net core
- خطا موقع استفاده از Api در سی شارپ
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2