دسته بندی ها
20:30 1403/01/17

دریافت نقش های کاربر از جدول AspNetRoles در Asp.net core

مشخصات سوال کننده :
کاربر : Tarak4135     امتیاز کاربر : 56     رتبه کاربر : 17
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 1022
پاسخ دهنده : fateme 13:17 1403/01/18

فکر می کنم دستوراتتتون برای دریافت نقش ها مشکل داشته باشه. چون شما میخواید همه نقش های جدول رو بخونید بهتره از خود context استفاده کنید :

private readonly ApplicationDbContext _context;

public HomeController()
{
   _context = context;
}

public IActionResult Index()
{
   var roleList = _context.ApplicationRoles.ToList();
}

البته این نکته رو هم بگم شما در کلاس ApplicationDbContext از IdentityDbContext استفاده کردید. این کلاس خودش شامل 7 جدول Identity هست. بنابراین دیگه نیازی نیست دوباره یک DbSet به نام ApplicationRoles تعریف کنید.

به این پاسخ امتیاز بدهید    1
امتیاز: 1617 رتبه: 2
1 نظر
Tarak4135 : ابتدا بدون DbSet استفاده کردم اما فیلدهایی که شخصی سازی کردم در دیتابیس ایجاد نشد اما بعد از تعریف ApplicationRole در DbSet تغییرات در جدول AspNetRoles ثبت شد.

امتیاز کاربر : 56   رتبه کاربر : 17   تاریخ ثبت : 11:30 1403/01/18
پاسخ دهنده : Tarak4135 14:31 1403/01/18

سلام.اتفاقاً این رو من تست کردم اما بازم مقدار list برابر null بود.

private readonly ApplicationDbContext _db;
public IndexModel(ApplicationDbContext db)
{
   _db = db;
}

public ActionResult OnGet()
{
   var list= _db.Roles.ToList();
   return Page();
}

 

ویرایش شده در دوشنبه 20 فروردین 1403 ساعت 16:35:33
به این پاسخ امتیاز بدهید    0
امتیاز: 56 رتبه: 17
پاسخ دهنده : Tarak4135 16:20 1403/01/20

البته با کد زیر می توان نقش ها را دریافت کرد اما فقط فیلدهای IdentityRole رو شامل می دهد و فیلد هایی که به وسیله کلاس ApplicationRole  تعریف کردم شامل نمی شود

 

public class IndexModel : PageModel
{
   private readonly RoleManager<IdentityRole> _roleManager;
   public IndexModel(RoleManager<IdentityRole> roleManager)
   {
      _roleManager = roleManager;
   }

   public ActionResult OnGet()
   {
      var list= _roleManager.Roles.ToList();
      return Page();
   }
}

 

ویرایش شده در دوشنبه 20 فروردین 1403 ساعت 16:20:58
به این پاسخ امتیاز بدهید    0
امتیاز: 56 رتبه: 17
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود