我有一个在 VM(带有 Apache2 的 Ubuntu)上运行的 Blazor 服务器应用程序,在用户和应用程序之间还有一个反向代理来处理身份验证。代理向应用程序发送带有用户信息的附加标头。我需要使用这些标头才能在组件中显示有关用户的信息。我已经在 Program.cs 中设置了转发的标题,但我正在努力阅读它们。问题是它们出现在初始化组件时并出现在浏览器中,但是当组件进一步加载时,这些标题消失了。这是我第一次进行任何形式的身份验证,所以我肯定在这里做错了。
我目前用来读取标题的代码:
List<(string key, string value)> headers = new List<(string key, string value)>();
protected override void OnInitialized()
{
var context = contextAccessor.HttpContext.Request.Headers;
if (context is not null)
{
foreach (var header in context)
{
headers.Add((header.Key, header.Value));
}
}
base.OnInitialized();
}
谁能在这里指出我正确的方向?