دسته بندی ها
14:59 1400/08/25

افزودن نقش به کاربر بعد از ثبت کاربر جدید در Asp net Core

مشخصات سوال کننده :
کاربر : Mammadq     امتیاز کاربر : 0     رتبه کاربر : 7058
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2896
هوش مصنوعی

پاسخ هوش مصنوعی

برای افزودن نقش به کاربر بعد از ثبت کاربر جدید در 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 به ویو ارسال می شوند و در لیست انتخابی نمایش داده می شوند.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 14:12 1400/08/26

شما باید ابتدا کاربر رو درون سیستم ثبت کنید و بعد از اون بهش نقش بدید. اگر نقش رو به صورت ثابت می خواید به کاربر اختصاص بدید میتونید بعد از ثبت کاربر از دستور زیر استفاده کنید.

await _userManager.AddToRoleAsync(user, "yourRole");

اما اگر میخواید لیستی از نقش ها رو به کاربر اختصاص بدید یا اینکه کاربر بتونه در بین نقش های شما انتخاب کنه باید لیست Role ها رو از جدول Roles نمایش بدید و ادمین بتونه هر کدوم رو که خواست انتخاب و به کاربر نسبت بده. مثل تصویر زیر 

نمایش نقش های کاربر به صورت سلسله مراتبی

 

به این پاسخ امتیاز بدهید    1
امتیاز: 1664 رتبه: 1
1 نظر
mostafapaz : لطفا کد های این بخش را میگذارید تا استفاده کنیم

امتیاز کاربر : ‎−2   رتبه کاربر : 7120   تاریخ ثبت : 12:52 1400/08/29
پاسخ دهنده : saedbfd 21:04 1400/08/29

پیاده سازی سطوح دسترسی به صورت درختواره یا سلسله مراتبی نکات و پیچیدگی های زیادی داره و باید به صورت چند قسمت فیلم آموزشی ببینید و نمیشه با متن توضیح داد. چون هم باید مباحث آیدنتیتی و کلاسهای اون توضیح داده بشه و هم پیاده سازی اونها و از طرفی هم کار با JsTree رو باید گفت. در دوره آموزش اتوماسیون اداری تحت وب این موضوع به صورت کامل پیاده سازی شده. این تصویر هم مربوط به همین دوره است. یا این دوره رو مشاهده کنید در غیر این صورت در مورد پلاگین JsTree مطالعه کنید تا بتونید ساختار درختی رو ایجاد کنید. ( این لینک هم میتونید مطالعه کنید.)

ویرایش شده در شنبه 29 آبان 1400 ساعت 21:05:21
به این پاسخ امتیاز بدهید    0
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود