首页 > 解决方案 > Blazor 在尝试激活 DefaultAuthorizationPolicyProvider 时无法解析 AuthorizationOptions

问题描述

我正在开发 Blazor wasm 应用程序,在 App.razor 文件中添加 AuthorizeRouteView 组件时遇到异常。由于这方面的资源很少,我浪费了很多时间来解决这个问题,所以我想在这里分享解决方案:

错误信息是:

System.InvalidOperationException:尝试激活“Microsoft.AspNetCore.Authorization.DefaultAuthorizationPolicyProvider”时,无法解析“Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Authorization.AuthorizationOptions]”类型的服务。

软件包版本:

    <PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="3.2.0-preview1.20073.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.DevServer" Version="3.2.0-preview1.20073.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview1.20073.1" />
    <PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="3.1.1" PrivateAssets="all"/>

以下描述我只需要在 Program.cs 服务中添加 AddAuthorizationCore() :

builder.Services.AddAuthorizationCore();

然后产生上述异常......

标签: blazorasp.net-authorizationblazor-client-side

解决方案


解决方案

当我第一次将 AddOptions() 添加到 Program.cs 中的服务时,问题就解决了:

builder.Services.AddOptions();
builder.Services.AddAuthorizationCore();


推荐阅读