دسته بندی ها
17:10 1399/11/05

استفاده از دستور User.IsInRole جهت کنترل دسترسی کاربر در ویو در Asp.net Core

مشخصات سوال کننده :
کاربر : abbas     امتیاز کاربر : ‎−1     رتبه کاربر : 7059
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    ‎−1
تعداد بازدید این سوال : 2640
1 نظر
fateme : شما توی جدول AspNetRoles دقیقا نقشی به نام creatcategory دارید؟ و نکته دوم اینکه کاربری که به سیستم لاگین کرده توی جدول AspNetUserRole این نقش رو داره ؟

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 11:07 1399/11/06
پاسخ دهنده : fateme 18:58 1399/11/06

منظور شما از اینکه میفرمایید این دستور کار نمیکنه چی هست دقیقا؟ فرض کنید کاربری دارید که بعد از لاگین به سیستم میخواید فقط در صورتی منو یا دکمه ای رو ببینه که دسترسی رو داشته باشه در غیر این صورت اون منو یا دکمه غیر فعال باشه. خب در این صورت می تونید از دستور User.IsInRole استفاده کنید.

دقت کنید که :

  • در جدول AspNetRoles حتما یک دسترسی به نام creatcategory تعریف شده باشه.
  • کاربری که باهاش لاگین کردید حتما در جدول AspNetUserRoles دسترسی رو داشته باشه. (کاربرانی که دسترسی رو ندارن بعد از لاگین نمی تونن منو یا دکمه رو ببینن)
  • و نکته بسیار مهم اینکه حتما بعد از اینکه دسترسی رو به کاربر دادید، یا دسترسی رو تعریف کردید یک بار Logout کنید و مجددا Login کنید تا دسترسیها به درستی اعمال بشه. (احتمالا اشکال شما از همینجاست)

 

@if (User.IsInRole("RoleName"))
{
   //اگر کاربری دسترسی داشته باشد تگهای این بخش را می بینید
   //و اگر دسترسی نداشته باشد تگ های این بخش را نمی بیند.
}

 

اگر مشکل شما حل نشد لینک زیر رو ببینید چند تا راهکار دیگه هم داده.

User.IsInRole doesn't work

ویرایش شده در دوشنبه 6 بهمن 1399 ساعت 18:59:04
به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود