Я пытаюсь создать контроллер, который возвращает мне токен типа Носителя.Я предпринял следующие шаги:
Я передаю имя пользователя и пароль в проверке запроса, если в БД есть учетная запись, которая пытается войти в систему, и если да, то я хочу создать токен для передачи во внешний интерфейс.
Я запустил веб-шаблон API с аутентификацией и написал следующий код.
Где я ошибаюсь?
[HttpPost, Route("Login")]
[AllowAnonymous]
public async Task<IHttpActionResult> LoginAsync(LoginRequestModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var user = new User();
OracleConnection dbConn = new OracleConnection(ConfigurationManager.AppSettings.Get("connectionString"));
dbConn.Open();
OracleCommand command = dbConn.CreateCommand();
OracleParameterCollection paramCollection = command.Parameters;
paramCollection.Add(new OracleParameter(":COD_ANAGR_UTENTE", model.Username));
command.CommandText = command.CommandText = CommandStrings.GetCodiceAnagraficoUtente;
OracleDataReader reader = command.ExecuteReader();
if (reader == null)
{
return NotFound();
}
OAuthGrantResourceOwnerCredentialsContext context = null;
var identity = new ClaimsIdentity(OAuthDefaults.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, model.Username));
context.Validated(identity);
return Ok();
}