Blazor 授权模板的奇怪行为

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

我无法使用策略禁用组件

  1. 使用 WindowsAuthenticate 授权模板创建一个空的 BlazorServer 项目。
  2. 添加拒绝一切的默认策略。
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
   .AddNegotiate();
builder.Services.AddAuthorization(options =>
{
    options.FallbackPolicy = new AuthorizationPolicyBuilder().RequireAssertion(x=>false).Build();
});
  1. 将AllowAnonumus属性添加到_host页面。如果不添加的话,根本就无法访问网站,会返回403
@attribute [Microsoft.AspNetCore.Authorization.AllowAnonymous]
  1. 确保模板中有一个需要授权的组件。
<AuthorizeView>
    <Authorized>
    Hello, @context.User.Identity.Name!
    </Authorized>
</AuthorizeView>

现在运行项目,一开始你不会看到登录信息。 但如果您快速单击导航栏,您就会看到它。解释一下代码如何进入

<Authorized>
标签

c# blazor authorization windows-authentication policy
1个回答
0
投票

我找到了使用异步重载形式的临时解决方案。 我不知道为什么会这样......

options.FallbackPolicy = new AuthorizationPolicyBuilder().RequireAssertion(x => new Task<bool>(() => false)).Build();

它不是这样工作的:

options.FallbackPolicy = new AuthorizationPolicyBuilder().RequireAssertion(async x => false).Build();

我的脑子坏掉了。 也许这就是心流竞赛的运作方式,而你将以完全不同的方式拥有它

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.