提问人:Jordan772 提问时间:11/15/2023 最后编辑:NimanthaJordan772 更新时间:11/20/2023 访问量:102
如何在 Blazor Server 中使用身份验证命中内部 API?
How do I hit internal API with Authentication in Blazor Server?
问:
我的控制器中有一个 API 端点:
[HttpDelete("delete/{id}")]
public async Task<IActionResult> DoSomething(int id)
{
var user = await userManager.GetUserAsync(User);
}
我有一个 Blazor 页面,我想在其中调用它:
private async Task MyAction()
{
var result = await HttpClient.DeleteAsync($"/api/mycontroller/delete/{someId}");
}
我已登录到 Blazor 页面,我想将标识/身份验证传递给 API 控制器。就我而言,控制器端的 GetUserAsync 始终返回 null。我正在使用默认的 Identity.Application 身份验证 sheme。
我尝试使用IHttpContextAccessor中的数据修改请求标头,但我没有让它工作,我认为这不是您应该这样做的方式。
答:
0赞
Jordan772
11/17/2023
#1
我通过将身份验证cookie复制到HttpClient来修复它。
var token = HttpContextAccessor.HttpContext?.Request.Cookies[".AspNetCore.Identity.Application"];
HttpClient.DefaultRequestHeaders.Add("Cookie", $".AspNetCore.Identity.Application={token}");
评论