افزودن نقش به کاربر بعد از ثبت کاربر جدید در Asp net Core
سلام و عرض ادب
دوستان ببخشید من میخوام وقتی یه کاربر رو تو سیستم بصورت دستی درج میکنم نقش ها رو به ادمین نشون بدم و نقشش رو تعیین کنم
سوالم اینه که چجوری میشه کل نقش ها رو به ویویی ارسال کرد که داخلش کنترل usermanager هستش
مثلا با استفاده از viewbag
پاسخ هوش مصنوعی
برای افزودن نقش به کاربر بعد از ثبت کاربر جدید در ASP.NET Core و ارسال تمام نقش ها به ویو با استفاده از ViewBag، می توانید مراحل زیر را دنبال کنید:
ابتدا، در کنترلر خود کد زیر را اضافه کنید تا نقش های موجود را دریافت کرده و آن ها را به ViewBag ارسال کنید:
using Microsoft.AspNetCore.Identity;
// سایر استفاده ها
public class UserController : Controller
{
private readonly UserManager _userManager;
private readonly RoleManager _roleManager;
public UserController(UserManager userManager, RoleManager roleManager)
{
_userManager = userManager;
_roleManager = roleManager;
}
public IActionResult Create()
{
var roles = _roleManager.Roles.ToList();
ViewBag.Roles = roles;
return View();
}
[HttpPost]
public async Task Create(ApplicationUser user, string selectedRole)
{
if (ModelState.IsValid)
{
var result = await _userManager.CreateAsync(user);
if (result.Succeeded)
{
if (!string.IsNullOrEmpty(selectedRole))
{
await _userManager.AddToRoleAsync(user, selectedRole);
}
return RedirectToAction("Index");
}
}
return View(user);
}
}
سپس در ویوی Create.cshtml می توانید این نقش ها را نمایش دهید:
@model ApplicationUser
Create User
با این کد، شما به کاربر جدید ثبت نام شده نقش انتخاب شده را اختصاص می دهید. نقش ها از ViewBag به ویو ارسال می شوند و در لیست انتخابی نمایش داده می شوند.
شما باید ابتدا کاربر رو درون سیستم ثبت کنید و بعد از اون بهش نقش بدید. اگر نقش رو به صورت ثابت می خواید به کاربر اختصاص بدید میتونید بعد از ثبت کاربر از دستور زیر استفاده کنید.
await _userManager.AddToRoleAsync(user, "yourRole");
اما اگر میخواید لیستی از نقش ها رو به کاربر اختصاص بدید یا اینکه کاربر بتونه در بین نقش های شما انتخاب کنه باید لیست Role ها رو از جدول Roles نمایش بدید و ادمین بتونه هر کدوم رو که خواست انتخاب و به کاربر نسبت بده. مثل تصویر زیر
پیاده سازی سطوح دسترسی به صورت درختواره یا سلسله مراتبی نکات و پیچیدگی های زیادی داره و باید به صورت چند قسمت فیلم آموزشی ببینید و نمیشه با متن توضیح داد. چون هم باید مباحث آیدنتیتی و کلاسهای اون توضیح داده بشه و هم پیاده سازی اونها و از طرفی هم کار با JsTree رو باید گفت. در دوره آموزش اتوماسیون اداری تحت وب این موضوع به صورت کامل پیاده سازی شده. این تصویر هم مربوط به همین دوره است. یا این دوره رو مشاهده کنید در غیر این صورت در مورد پلاگین JsTree مطالعه کنید تا بتونید ساختار درختی رو ایجاد کنید. ( این لینک هم میتونید مطالعه کنید.)
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2