gpt4 book ai didi

c# - 如何从 IdentityUserRole 转换为 IdentityRole (ASP.NET Core)

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:08 24 4
gpt4 key购买 nike

我正在我的项目中开发一个 Controller 。我正在尝试执行以下操作:

string role = "something";
var newRole = new IdentityRole();

newRole = _DbContext.Roles.Where(r => r.Name == role).FirstOrDefault().;
user.Roles.Add(newRole);

显然,user.Roles.Add() 只接受一个I​​dentityUserRole 作为参数,而newRole 是IdentityRole 类型。我怎样才能从一个转换成另一个?是否有其他方法可以完成我想做的事情?

显式转换不起作用。

最佳答案

考虑使用 UserManager

通常,您会使用 AddToRoleAsync()方法来自 UserManager对象来处理为用户分配角色,而不是直接在用户对象本身上添加角色。

// Example of instantiating the User Manager
private readonly UserManager<ApplicationUser> _userManager;
public AccountController(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}

// Example of adding a user to a given role
public void AddUserToRole(string userId, string role)
{
var user = _userManager.FindByIdAsync(userId);
if (user != null)
{
await _userManager.AddToRoleAsync(user, role);
}
}

UserManager 类负责确保根据需要正确创建、更新和保留有关用户的任何关系或信息,因此通常首选将这些类型的职责委派给它。

关于直接转化

关于直接转换,您可以使用类似于 DavidG's response 的方法并简单地使用来自用户的 Id 和角色来构建一个对象并将其添加到用户。

关于c# - 如何从 IdentityUserRole 转换为 IdentityRole (ASP.NET Core),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43452692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com