Получить токен-носитель в контроллер WEBApi - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь создать контроллер, который возвращает мне токен типа Носителя.Я предпринял следующие шаги:

Я передаю имя пользователя и пароль в проверке запроса, если в БД есть учетная запись, которая пытается войти в систему, и если да, то я хочу создать токен для передачи во внешний интерфейс.

Я запустил веб-шаблон 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();
    }
...