You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中创建未认证匿名主体?适用于Blazor WASM的AuthenticationStateProvider

Blazor WebAssembly AuthenticationStateProvider 匿名主体处理

当从浏览器获取的用户信息(user)为null时,需返回未认证的匿名ClaimsPrincipal,以下是补充完整后的代码实现:

public override async Task<AuthenticationState> GetAuthenticationStateAsync()
{
    var principal = new ClaimsPrincipal();
    var user = await _userService.FetchUserFromBrowser();

    if (user is not null)
    {
        var authenticatedUser = await _userService.SendAuthenticateRequestAsync(user.Username, user.Password);

        if (authenticatedUser is not null)
        {
            principal = authenticatedUser.ToClaimsPrincipal();
            CurrentUser = authenticatedUser;
        }
    }
    else
    {
        // 显式初始化未认证的匿名主体
        principal = new ClaimsPrincipal(new ClaimsIdentity());
    }
    return new AuthenticationState(principal);
}

说明

  • 默认构造的ClaimsPrincipal本身就代表未认证的匿名用户,其关联的ClaimsIdentity的IsAuthenticated属性为false。
  • 显式创建new ClaimsIdentity()并赋值给ClaimsPrincipal,能更清晰地表明这是一个匿名未认证主体,语义上更明确。

内容的提问来源于stack exchange,提问作者mz1378

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 09:47:25