دسته بندی ها
17:10 1399/11/05
استفاده از دستور User.IsInRole جهت کنترل دسترسی کاربر در ویو در Asp.net Core
من میخوام در پروژه ام وقتی کاربر مثلاً به ایجاد خبر دسترسی نداشت مخفی شود نمایش ندهد.
کدهای زیر رو در ویو خودم به اسم Index نوشتم و از دستور User.IsInRole هم استفاده کردم ولی این دستور کار نمیکنه. ممنون میشم راهنمایی بفرمایید.
<div class="row center-block box box-success">
<div class="panel panel-primary>
<div class="panel-body">
if (User.IsInRole("creatcategory"))
{
<div>
<a class="btn btn-primary" asp-controller="Category" asp-action="Create">
<i class="glyphicon glyphicon-plus"></i>
افزودن دسته بندی جدید
</a>
</div>
}
</div>
<table class="table table-responsive text-center">
<thead>
<tr>
<td>@Html.DisplayNameFor(model => model.Title)</td>
<td>@Html.DisplayNameFor(model => model.Description)</td>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.Title</td>
<td>@item.Description</td>
</tr>
}
</tbody>
</table>
</div>
</div>
ویرایش شده در دوشنبه 6 بهمن 1399 ساعت 10:54:57
مشخصات سوال کننده :
کاربر : abbas
امتیاز کاربر : −1
رتبه کاربر : 7059
به این سوال امتیاز بدهید
−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"))
{
//اگر کاربری دسترسی داشته باشد تگهای این بخش را می بینید
//و اگر دسترسی نداشته باشد تگ های این بخش را نمی بیند.
}
اگر مشکل شما حل نشد لینک زیر رو ببینید چند تا راهکار دیگه هم داده.
ویرایش شده در دوشنبه 6 بهمن 1399 ساعت 18:59:04
آخرین سوالات ثبت شده
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
سوالات مرتبط
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.
 
ورود