是否有关于在自定义类中的Blazor Server Side中访问AuthenticationStateProvider的常规指导?是否应将AuthenticationStateProvider添加为单例服务?还有其他方法可以通过DI获得它吗?我不是在谈论使用AuthorizeViews或通过级联参数。我需要能够在自定义类中而不是控制器,视图等中获取AuthenticationStateProvider.GetAuthenticationStateAsync()。
有什么想法吗?
答案 0 :(得分:0)
感谢艾萨克(Isaac)的信息,但实际上我能够回答自己的问题。我的解决方案是确保我的助手类是作用域的,而不是单例的,以获取authstateprovider的实例。
services.AddScoped<Classes.GlobalHelper>();
然后我可以像调用任何其他DI一样调用authstateprovider,
public async Task<HttpClient> MyHttpClient()
{
AuthenticationState _authstate = _authStateProv.GetAuthenticationStateAsync().Result;
HttpClient http = new HttpClient();
string signedInUserID = _authstate.User.FindFirst(ClaimTypes.NameIdentifier).Value;