要将用户角色保存到AspNetUserRoles表中,您可以使用ASP.NET Core的Identity框架提供的UserManager和RoleManager类来管理用户和角色。以下是一个示例解决方案:
首先,确保您的应用程序已经正确配置了Identity服务。在Startup.cs文件的ConfigureServices方法中添加以下代码:
services.AddDefaultIdentity()
.AddRoles()
.AddEntityFrameworkStores();
接下来,您需要在控制器或服务中使用UserManager和RoleManager类来保存用户角色。以下是一个示例控制器:
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 async Task AddUserRole(string userId, string roleName)
{
var user = await _userManager.FindByIdAsync(userId);
if (user == null)
{
return NotFound();
}
var role = await _roleManager.FindByNameAsync(roleName);
if (role == null)
{
return NotFound();
}
var result = await _userManager.AddToRoleAsync(user, role.Name);
if (!result.Succeeded)
{
// 处理保存角色失败的情况
}
return RedirectToAction("Index", "Home");
}
}
在上面的示例中,AddUserRole方法用于将指定用户添加到指定角色。您可以根据您的需求进行修改。
请注意,您还需要确保AspNetUserRoles表在数据库中正确创建了。如果表未正确创建,请运行以下命令来创建表:
dotnet ef database update
这些代码示例应该能够帮助您解决ASP.NET Core的用户管理器未将用户角色保存到AspNetUserRoles表中的问题。希望对您有帮助!