如何访问mudblazor中所有razor组件中的httpcontext

问题描述 投票:0回答:1

我创建了一个 mudblazor 应用程序,并创建了一个 cshtml 页面作为身份验证提供程序,并在其中的 .CS 文件中声明了获取 jwt 令牌响应及其角色的所有逻辑。现在我尝试使用以下内容设置相同的内容:-

Httpcontext.Session.SetString("身份验证", "true");

但是,如果我尝试在不同页面(例如我的 navmenu.razor 页面或任何其他 razor 页面)上使用该 httpcontext,则该 httpcontext 无法访问。

asp.net-core blazor blazor-webassembly mudblazor
1个回答
0
投票

我使用

IHttpContextAccessor
进行了测试,它可以访问不同组件中的会话。
程序.cs

builder.Services.AddHttpContextAccessor();

builder.Services.AddDistributedMemoryCache();
builder.Services.AddSession();
...
app.UseSession();

Home.剃须刀

@inject IHttpContextAccessor accessor
@code{
    protected override void OnInitialized()
    {
        accessor.HttpContext.Session.SetString("authentication", "true");
    }
}

柜台剃须刀

@inject IHttpContextAccessor accessor
authentication:
@accessor.HttpContext.Session.GetString("authentication")

测试

© www.soinside.com 2019 - 2024. All rights reserved.