当我将 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)