Blazor承载令牌未经授权但可在Postman上使用

时间:2020-03-31 14:43:31

标签: c# asp.net-core blazor blazor-server-side

我已使用身份服务器保护了我的blazor应用程序。到目前为止,到目前为止,我正在将HTTP客户端中的令牌设置为

services.AddHttpClient<SomeService>(async (serviceProvider, client) =>
        {
            var httpContextAccessor = serviceProvider.GetService<IHttpContextAccessor>();
            var accessToken = await httpContextAccessor.HttpContext.GetTokenAsync("access_token");

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            client.BaseAddress = new Uri(baseAddress);
        });

在我的服务中,我通过正常工作的构造函数获取HttpClient,在那里可以看到我的标头。 但是我得到了未授权,而如果我获得了令牌并尝试使用邮递员,一切都会正常!

我知道浏览器的工作方式有所不同,与Postman不同,它先发出预检请求,但是我仍然无法弄清楚为什么我会遭到未授权?

我已经启用了API上的所有标头/源,例如

services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
        {
            builder.AllowAnyOrigin()
                   .AllowAnyMethod()
                   .AllowAnyHeader();
        }));

app.UseCors("CorsPolicy");

0 个答案:

没有答案