次の方法で共有


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

価値
ルール識別子 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 です。 新しい構文を使用しない場合は、警告を抑制します。