mvc web api аутентификация проблема с токенами - PullRequest
0 голосов
/ 14 апреля 2019

Добрый день,

Я работаю с asp.net api и Angular.

Когда я пытаюсь получить токен аутентификации из моего API, я получаю ошибки

d

У меня есть контроллер, который возвращает маркер аутентификации для моего приложения. Это логика для контроллера

        [HttpPost]
    [Route("authenticate")]
    public async System.Threading.Tasks.Task<IHttpActionResult> AuthenticateAsync(LoginRequest login)
    {
        if (login == null)
            throw new HttpResponseException(HttpStatusCode.BadRequest);

        var result = await SignInManager.PasswordSignInAsync(login.Username, login.Password, false, shouldLockout: false);
       var strCurrentUserId = User.Identity.GetUserId();
        switch (result)
        {
            case SignInStatus.Success:
                {
                    LoginAprovado loginAprovado = new LoginAprovado
                    {
                        Token = TokenGenerator.GenerateTokenJwt(DateTime.Now.ToString() + login.Username + Guid.NewGuid()),
                        UserId = User.Identity.GetUserId()
                    };                       
                    return Ok(loginAprovado);
                }                  
            default:
                {
                    return Unauthorized();
                }
        }
    }

Как видите, я возвращаю объект LoginAprovado.

Я не знаю, как решить эту проблему, похоже, проблема cors.

Это мой веб-конфиг

  <appSettings>

<add key="JWT_AUDIENCE_TOKEN" value="http://mysite.azurewebsites.net/" />
<add key="JWT_ISSUER_TOKEN" value="http://mysite.azurewebsites.net/" />
...more here
  <system.webServer>
<httpProtocol>
        <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />
            <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
        </customHeaders>
    </httpProtocol>

Обратите внимание, что в моем разделе customeheaders для access-controol-allow-origin установлено значение *, поэтому я могу отлаживать свой интерфейс в локальной сети.

Что я могу сделать, чтобы исправить проблему? спасибо

1 Ответ

0 голосов
/ 14 апреля 2019

По моему опыту, мне помогло добавить следующую строку в первую строку метода Configuration(IAppBuilder app) в классе Startup (если вы используете OWIN):

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...