令我沮丧的是,它们都没有涵盖如何将用户添加到特定角色组。
这个问题与 Blazor 无关。
以下是如何将注册用户添加到角色:
[Route("api/[controller]")]
[ApiController]
public class AccountsController : ControllerBase
{
private static UserModel LoggedOutUser = new UserModel { IsAuthenticated = false };
private readonly UserManager<IdentityUser> _userManager;
public AccountsController(UserManager<IdentityUser> userManager)
{
_userManager = userManager;
}
[HttpPost]
public async Task<IActionResult> Post([FromBody]RegisterModel model)
{
var newUser = new IdentityUser { UserName = model.Email, Email = model.Email };
var result = await _userManager.CreateAsync(newUser, model.Password);
if (!result.Succeeded)
{
var errors = result.Errors.Select(x => x.Description);
return BadRequest(new RegisterResult { Successful = false, Errors = errors });
}
// Add all new users to the User role
await _userManager.AddToRoleAsync(newUser, "User");
// Add new users whose email starts with 'admin' to the Admin role
if (newUser.Email.StartsWith("admin"))
{
await _userManager.AddToRoleAsync(newUser, "Admin");
}
return Ok(new RegisterResult { Successful = true });
}
}
}
在此处查看源代码和更多信息
如果我想说,对特定域下的每个人进行身份验证.. 说所有使用地址 @example.ca 的谷歌登录
同样,这个问题与 Blazor 无关。这是根据您上面提到的要求使用基于策略的身份验证的候选者。请参阅文档如何实现这一点,如果需要,请毫不犹豫地寻求帮助。
希望这可以帮助...