価値 | |
---|---|
ルール識別子 | ASP0025 |
カテゴリ | 使用方法 |
修正が破壊的であるか非破壊的であるか | なし |
原因
AddAuthorizationの使用は、新しいAddAuthorizationBuilderに変換できます。
ルールの説明
AddAuthorizationBuilder
を使用して承認サービスを登録し、ポリシーを構築します。
違反を修正する方法
この規則違反を修正するには、 AddAuthorization
の使用を AddAuthorizationBuilder
に置き換えます。
このコード修正では、 AuthorizationOptionsの次のプロパティに対するセッターの使用を変換します。
これらのセッターの使用法は、 AuthorizationBuilderで同等のメソッド呼び出しに変換されます。
AddAuthorization
に渡された構成アクションがAuthorizationOptions
の次のいずれかのメンバーを使用している場合、診断は報告されません。
- GetPolicy(String) メソッド
- DefaultPolicy getter
- FallbackPolicy getter
- InvokeHandlersAfterFailure getter
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