如何通过http将用户登录到Blazor服务器端应用程序

时间:2019-12-12 21:00:48

标签: http authentication asp.net-core razor-pages blazor-server-side

我正在寻找一种无需使用https即可将用户登录到Blazor服务器端应用程序的方法。在生产中,该应用程序在反向代理后面运行,它将处理安全性。

使用默认的Blazor App进行身份验证并通过https访问它时,一切都很好,我可以登录。

但是当我从启动中删除app.UseHsts();app.UseHttpsRedirection();并使用http访问该应用程序时,我无法登录。没有错误消息,我只是重定向到起始页。

如何通过http登录工作?

1 个答案:

答案 0 :(得分:0)

您可能要使用ForwardedHeaders。他们告诉应用程序客户端的IP和协议是什么

将此添加到Configure方法

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

如果您的代理不在localhost上运行,则还必须配置其IP地址

services.Configure<ForwardedHeadersOptions>(options =>
{
    options.KnownProxies.Add(IPAddress.Parse("127.0.10.1"));
});

更多信息可以在这里找到:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-3.1#configure-a-reverse-proxy-server