【发布时间】:2021-10-27 03:01:15
【问题描述】:
Blazor 的组件 AuthorizeView 可以显示用户身份名称。
<AuthorizeView>
<Authorized>
@context.User.Identity.Name
</Authorized>
</AuthorizeView>
如何在 Blazor 页面的 OnInitializedAsync() 方法中访问 User 变量?
IHttpContextAccessor 不是一个选项,因为微软坚持,you must not use IHttpContextAccessor within Blazor apps。
【问题讨论】:
-
@snr,不知道你为什么投票结束这个问题。答案是错误的......并且提问者明确指出“IHttpContextAccessor 不是一个选项”。顺便说一句,在同一个线程中是我的答案,已删除,这是正确的答案。我会取消删除它。这个答案实际上指出了我的问题和答案(stackoverflow.com/a/59538319/6152891)。它是原创的,后来被 Blazor 团队采用来展示如何访问 HttpContext。我在您提供的链接中的答案被个人否决了,因此没有人应该看到正确的答案
-
@Browen,你可以简单地将AuthenticationStateProvider注入到你的组件中,然后在生命周期中的OnInitializedAsync()方法调用它的GetAuthenticationStateAsync()方法来获取User对象
-
@enet 你的说法就是我通过上面的链接指出的。
-
好的,是的,你是对的。这是正确的答案。我没有阅读它,因为它不是公认的答案...
标签: c# blazor blazor-server-side