mvc web api身份验证令牌cors问题

问题描述 投票:0回答:1

美好的一天,

我正在使用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对象。

我不知道如何解决这个问题,这似乎是一个问题。

这是我的网络配置

  <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>

请注意,在我的自定义标题部分中,access-control-allow-origin设置为*,因此我可以在本地调试我的前端。

我该怎么做才能解决这个问题?谢谢

c# angularjs asp.net-mvc rest api
1个回答
0
投票

根据我的经验,对我有用的是在Configuration(IAppBuilder app)类的Startup方法的第一行添加以下行(如果你使用的是OWIN):

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
© www.soinside.com 2019 - 2024. All rights reserved.