#asp.net #api #authentication #asynchronous #asp.net-web-api
Вопрос:
Я хочу спросить, как получить Идентификатор Пользователя При Аутентификации ?
В классе аутентификации мне удалось получить идентификатор пользователя, но в классе GetAll я не могу получить идентификатор пользователя из Auth. Пожалуйста, помогите мне
Проверка подлинности пользователя файла
[AllowAnonymous]
[HttpPost("authenticate")]
public async Task<IActionResult> Authenticate([FromBody] AuthenticateModel model)
{
var tokens = new Token();
var user = _userService.Authenticate(model.Username, model.Password);
if (user == null)
return BadRequest(new { message = "Username or password is incorrect" });
var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(_appSettings.Secret);
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(new Claim[]
{
new Claim(ClaimTypes.Name, user.Id.ToString())
}),
Expires = DateTime.Now.AddHours(8),
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
};
var token = tokenHandler.CreateToken(tokenDescriptor);
var tokenString = tokenHandler.WriteToken(token);
tokens.UserId = user.Id;
tokens.Value = tokenString;
tokens.Login_dt = DateTime.Now;
tokens.Login_time = DateTime.Now.AddHours(8);
_context.Tokens.Add(tokens);
await _context.SaveChangesAsync();
// return basic user info and authentication token
return Ok(new
{
Id = user.Id,
Username = user.Username,
Token = tokenString
});
}
Файл UserController, Получить все()
[HttpGet]
public async Task<IEnumerable<User>> GetAll()
{
var log = new Log();
var result = await _userService.GetAll();
return resu<
}
Я хочу получить user.id как и при аутентификации (tokens.userid = user.id)
Комментарии:
1. Я не пользуюсь Microsoft. Идентичность