ASP0025: AddAuthorizationBuilder を使用して認可サービスを登録し、ポリシーを構築する。

Value
ルール ID ASP0025
[カテゴリ] 使用法
修正が中断ありか中断なしか なし

原因

AddAuthorization の使用は、新しい AddAuthorizationBuilder に変換できます。

規則の説明

AddAuthorizationBuilder を使用して認可サービスを登録し、ポリシーを構築します。

違反の修正方法

このルールの違反を修正するには、AddAuthorization の使用を AddAuthorizationBuilder で置き換えます。

コード修正では、AuthorizationOptions の次のプロパティに対するセッターの使用をすべて変換します。

これらのセッターの使用は、次のように AuthorizationBuilder 上の同等のメソッド呼び出しに変換されます。

AddAuthorization に渡された構成アクションが AuthorizationOptions の次のいずれかのメンバーを使用する場合、診断は報告されません。

AuthorizationBuilder には、AuthorizationOptions のこれらのメンバーに相当するものがないため、これらは変換できません。

AddAuthorization に渡された構成アクションに AuthorizationOptions に関連しない操作が含まれている場合、診断は報告されません。 コード修正では、関連のない操作を AddAuthorizationBuilder の fluent API に自動的にマップすることはできません。

次の例は、この診断をトリガーするコードを示しています。

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthorization(options =>
{
    options.AddPolicy("AtLeast21", policy =>
        policy.Requirements.Add(new MinimumAgeRequirement(21)));
});

var app = builder.Build();

app.UseAuthorization();

app.Run();

次の例は、コード修正を適用した結果を示しています。

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthorizationBuilder()
  .AddPolicy("AtLeast21", policy =>
  {
        policy.Requirements.Add(new MinimumAgeRequirement(21)));
  });

var app = builder.Build();

app.UseAuthorization();

app.Run();

どのようなときに警告を抑制するか

この診断の重大度レベルは Information です。 新しい構文を使用したくない場合は、警告を抑制します。