解决方法:
在ASP.NET Core中,实现多个身份的最佳实践可以通过以下步骤来完成:
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
var roleManager = serviceProvider.GetRequiredService>();
var roles = new List { new IdentityRole("Admin"), new IdentityRole("User") };
foreach (var role in roles)
{
var roleExists = await roleManager.RoleExistsAsync(role.Name);
if (!roleExists)
{
await roleManager.CreateAsync(role);
}
}
var userManager = serviceProvider.GetRequiredService>();
var adminUser = new IdentityUser { UserName = "admin@example.com", Email = "admin@example.com" };
var userResult = await userManager.CreateAsync(adminUser, "Admin@123");
if (userResult.Succeeded)
{
await userManager.AddToRoleAsync(adminUser, "Admin");
}
[Authorize(Roles = "Admin")]
public IActionResult AdminOnlyAction()
{
// Only users with "Admin" role can access this action
return View();
}
通过以上步骤,您可以在ASP.NET Core中实现多个身份的最佳实践,并使用代码示例来演示不同身份的角色和访问权限。
上一篇:ASP Core Routing POST 页面找不到
下一篇:ASP CORE: @Html.ValidationMessage 迁移至 asp-validation-for 或类似的标签助手