这是我第一次实现身份验证,并且遇到了Roles问题。 我已经创建了两个角色(用户和超级用户)。在启动时,我定义了策略的(基本,超级)。
在数据库中,用户具有正确的角色,但是当我执行User.IsInRole(“ User”)时,我得到了错误。
在登录class属性后,[Authorize]也会导致重定向到登录。
已创建cookie,因此可以正常登录。
opt.Authorization(optn =>
{
optn.AddPolicy("Basic", p =>
{
p.RequireRole("User");
});
optn.AddPolicy("Super", p =>
{
p.RequireRole("User");
p.RequireRole("SuperUser");
});
});
[HttpPost]
public async Task<IActionResult> SignIn([FromForm] string email, [FromForm] string password)
{
var tmp = await this.SignInManager.PasswordSignInAsync(email, password, false, false);
string url = tmp.Succeeded ? Url.Action("Index", "Secure") : Url.Action("Index", "Assets", new { Error = 1 });
return RedirectPermanent(url);
}
更新我以错误的顺序调用app.UseAuthentication()。什么时候 在UseMVC之前运行UseAuthentication