Идентификатор .net 5 для разных типов пользователей

Привет, потрясающие взгляды, я работал над проектом в .net 5, и в системе есть 2 пользователя с собственной панелью администратора, предназначенная для персонала, а одна - для клиентов, администраторы персонала могут создавать других сотрудников и назначать им роли и разрешения, так что делайте клиентам они могут назначать своим сотрудникам любые роли и разрешения. Я использую .net Identity, и как лучше всего это сделать? следует ли мне добавлять пользователей в одну таблицу AspNetUsers и различать их по ролям, или есть ли какой-либо способ, которым я могу создать сотрудников и клиентов и выполнить все функции идентификации и прочее в двух разных пользовательских таблицах? Я новичок и немного смущен, любая помощь приветствуется!


person Abnet Hussien    schedule 05.02.2021    source источник
comment
Привет @AbnetHussien! Решил ли ответ проблему или есть какие-нибудь обновления по этой теме? Если ответ решил проблему, примите его - см. Что мне делать, когда кто-то ответит на мой вопрос. Если у вас есть какие-либо вопросы по поводу моего ответа, пожалуйста, дайте мне знать.   -  person Zhi Lv    schedule 24.02.2021


Ответы (1)


Я использую .net Identity, и как лучше всего это сделать? следует ли мне добавлять пользователей в одну таблицу AspNetUsers и различать их по ролям, или есть ли какой-либо способ, которым я могу создать сотрудников и клиентов и выполнить все функции идентификации и прочее в двух разных пользовательских таблицах? Я новичок и немного смущен, любая помощь приветствуется

Поскольку вы уже использовали базовую идентификацию Asp.net, вы можете добавить AddRoles, чтобы добавить службы ролей в метод Startup.ConfigureServices, например:

services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(
        Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
    .AddRoles<IdentityRole>()
    .AddEntityFrameworkStores<ApplicationDbContext>();

[Примечание] Приведенный выше код был настроен для использования модели IndentityUser и IdentityRole по умолчанию, если вы хотите добавить пользовательские данные для таблицы пользователей или ролей, вы можете изменить IdentityUser или IdentityRole на свою пользовательскую модель.

Если приложение не настраивает службы идентификации, вы можете проверить Введение в идентификацию в ASP.NET Core и Scaffold Identity в проектах ASP.NET Core, затем настройте службы идентификации.

После настройки служб идентификации вы можете создать RoleController, а затем использовать RoleManager для управления ролями. А на странице регистрации после успешного создания пользователя вы можете использовать метод UserManager.AddToRoleAsync () для добавления пользователя к специальной роли.

Пользователи будут храниться в таблице AspNetUsers, а роли - в таблице AspNetRoles, отношения между пользователем и ролью будут храниться в таблице AspNetUserRoles, вы можете найти их на основе UserId и RoleId, проверьте это.

Затем вы можете настроить авторизацию на основе ролей или создать политику на основе ролей, см. Следующие статьи:

Авторизация на основе ролей в ASP.NET Ядро

Добавление авторизации роли в приложение ASP.NET MVC Core

person Zhi Lv    schedule 08.02.2021