ASP0025: AddAuthorizationBuilder を使用して認可サービスを登録し、ポリシーを構築する。
Value | |
---|---|
ルール ID | ASP0025 |
[カテゴリ] | 使用法 |
修正が中断ありか中断なしか | なし |
原因
AddAuthorization の使用は、新しい AddAuthorizationBuilder に変換できます。
規則の説明
AddAuthorizationBuilder
を使用して認可サービスを登録し、ポリシーを構築します。
違反の修正方法
このルールの違反を修正するには、AddAuthorization
の使用を AddAuthorizationBuilder
で置き換えます。
コード修正では、AuthorizationOptions の次のプロパティに対するセッターの使用をすべて変換します。
これらのセッターの使用は、次のように AuthorizationBuilder 上の同等のメソッド呼び出しに変換されます。
AddAuthorization
に渡された構成アクションが AuthorizationOptions
の次のいずれかのメンバーを使用する場合、診断は報告されません。
- GetPolicy(String) メソッド
- DefaultPolicy ゲッター
- FallbackPolicy ゲッター
- InvokeHandlersAfterFailure ゲッター
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 です。 新しい構文を使用したくない場合は、警告を抑制します。
ASP.NET Core