当我将 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)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           3631 次  |  
        
|   最近记录:  |