Microsoft.AspNetCore.Authorization.DefaultAuthorizationService 授权失败。未满足这些要求:需要经过身份验证的用户

Ste*_*eve 5 c# blazor

当我将 NET 6 blazor Web 应用程序(服务器和客户端)部署到 IIS 中时,但在运行它时出现此错误,http://blazorecommerceapi.findingsteve.net

Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]
      Authorization failed. These requirements were not met:
      DenyAnonymousAuthorizationRequirement: Requires an authenticated user.
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我运行它的 api 时,http://blazorecommerceapi.findingsteve.net/api/product

在此输入图像描述

但当我在本地运行它时,它按预期工作。我可以运行 blazor 客户端页面。

在此输入图像描述

我可以看到api数据。

在此输入图像描述

我正在使用 Sqlite 来保存数据并进行身份验证,这些是 program.cs 中的一些代码

builder.Services.AddScoped<IAuthService, AuthService>();

builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuerSigningKey = true,
            IssuerSigningKey =
                new SymmetricSecurityKey(System.Text.Encoding.UTF8
                .GetBytes(builder.Configuration.GetSection("AppSettings:Token").Value)),
            ValidateIssuer = false,
            ValidateAudience = false
        };
    });

app.UseAuthentication();
app.UseAuthorization();
Run Code Online (Sandbox Code Playgroud)

小智 0

检查FallbackPolicy配置并设置参数,AuthorizationPolicyBuilder如下所示:

config.FallbackPolicy = new AuthorizationPolicyBuilder(JwtBearerDefaults.AuthenticationScheme)
          .RequireAuthenticatedUser()
          .Build();
Run Code Online (Sandbox Code Playgroud)