共用方式為


ASP0025:使用 AddAuthorizationBuilder 來註冊授權服務和建構原則。

價值
規則識別碼 ASP0025
類別 用法
修正是破壞性或非破壞性 不間斷

原因

使用 AddAuthorization 可以轉換成新的 AddAuthorizationBuilder

規則描述

AddAuthorizationBuilder 註冊授權服務和建立政策。

如何修正違規

若要修正此規則的違規,請將 的用法 AddAuthorization 取代為 AddAuthorizationBuilder

程式碼修正會將 AuthorizationOptions 的下列屬性的 setter 的任何使用方式轉換:

這些 setter 使用方式會轉換成對 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();

隱藏警告的時機

此診斷的嚴重性層級為「資訊」。 如果您不想使用新語法,請隱藏警告。