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

規則識別碼 ASP0025
類別 使用方式
修正程式是中斷或非中斷 不中斷

原因

使用 AddAuthorization 可以轉換成新的 AddAuthorizationBuilder

檔案描述

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

如何修正違規

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

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

這些 setter 使用方式會在 AuthorizationBuilder 上轉換成對等的方法呼叫:

當傳遞至 AddAuthorization 的設定動作使用下列 AuthorizationOptions 的任一成員時,不會報告任何診斷:

針對 AuthorizationOptions 的這些成員,AuthorizationBuilder 沒有對等項目,因此無法轉換。

如果傳遞至 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();

隱藏警告的時機

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