gpt4 book ai didi

blazor - 如何在 Blazor 中获取客户端 IP 和浏览器信息?

转载 作者:行者123 更新时间:2023-12-02 15:20:16 29 4
gpt4 key购买 nike

如何在 Blazor 服务器端获取 IP 地址和浏览器名称/版本等客户端信息?

最佳答案

嗯,我今天早上遇到了这个问题,我为服务器端 Blazor 解决这个问题的方法是创建一个类,然后您可以将其作为作用域服务注入(inject)到 _host.cshtml 上,然后在您的 _host.cshtml 上的任何位置访问它。 Blazor 组件,因为 Razor 页面已经支持此功能。

    public class BlazorAppContext
{
/// <summary>
/// The IP for the current session
/// </summary>
public string CurrentUserIP { get; set; }
}

启动.cs:

    // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
...

services.AddScoped<BlazorAppContext>();

...
}

_host.cshtml:

@inject IHttpContextAccessor httpContextAccessor
@{
BlazorAppContext.CurrentUserIP = httpContextAccessor.HttpContext.Connection?.RemoteIpAddress.ToString();
}

您还可以尝试一种限定范围的方法,然后可以通过 DI 使用该方法。

注释:

如文档中所述,“Blazor WebAssembly 应用程序目前没有 DI 作用域的概念。作用域注册服务的行为类似于单例服务。但是,Blazor Server 托管模型支持作用域生命周期。在 Blazor Server 应用程序中,范围服务注册的范围仅限于连接。因此,对于应范围仅限于当前用户的服务,首选使用范围服务,即使当前意图是在浏览器中运行客户端。”

希望对您有所帮助。

关于blazor - 如何在 Blazor 中获取客户端 IP 和浏览器信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57982444/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com