我试着去设置令牌认证与我的应用程序同时Cookie身份验证。
我创建了asp.net核心2.0 MVC项目,单个用户帐户要权威性。 设置角色的用户了。
如果我按照肖恩Wildermuth本教程两AuthorizationSchemes式-ASP-NET-睿2
一切工作正常,以获得注册用户的令牌。 但是,如果使用中的作用属性上的授权[授权(角色=“管理员”)]即时得到一个403响应。
我认为这是因为令牌没有收到上AUTH的角色。
如何设置呢? 什么办法可以传递令牌过程中的作用?
为了产生他使用这段代码的令牌:
[AllowAnonymous]
[HttpPost]
public async Task<IActionResult> GenerateToken([FromBody] LoginViewModel model) { if (ModelState.IsValid) {
var user = await _userManager.FindByEmailAsync(model.Email);
if (user != null)
{
var result = await _signInManager.CheckPasswordSignInAsync(user, model.Password, false);
if (result.Succeeded)
{
var claims = new[]
{
new Claim(JwtRegisteredClaimNames.Sub, user.Email),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
};
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Tokens:Key"]));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(_config["Tokens:Issuer"],
_config["Tokens:Issuer"],
claims,
expires: DateTime.Now.AddMinutes(30),
signingCredentials: creds);
return Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) });
}
} }
return BadRequest("Could not create token"); }
你们有什么想法?
谢谢