Попробуйте это:
В Startup.cs, внутри метода "ConfigureServices"
services.AddCors(options =>
{
options.AddPolicy("default",
builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
.Build();
});
});
А затем внутри метода "Configure", напишите в top app. Использование Mvc () ;
app.UseCors("default");
А затем в Program.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls("put your client side link here");
//for example: "http://localhost:4200"
И затем добавьте эти коды в верхней части контроллера:
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Produces("application/json")]
И затем измените свое действие («Я имею в виду GetUserProfile ()») вот так:
[HttpGet]
public async Task<IActionResult> GetUserProfile()
{
var userId = user.Claims.First(c => c.Type.equals("UserID")).Value;
var user = await _userManager.FindByIdAsync(userId);
return Ok(new
{
FullName = user.FullName,
Email = user.Email,
UserName = user.UserName
});
}
И около angular кода попробуйте это:
getUserProfile() {
const TOKEN = localStorage.getItem("token");
const httpOptions = {
headers: new HttpHeaders({
"Authorization": "Bearer " + TOKEN,
"Content-Type": "application/json"
})
};
return this.http.get(this.BaseURI + '/UserProfile', httpOptions);
}