| 価値 | |
|---|---|
| ルール識別子 | 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