ASP0025:使用 AddAuthorizationBuilder 來註冊授權服務和建構原則。
值 | |
---|---|
規則識別碼 | ASP0025 |
類別 | 使用方式 |
修正程式是中斷或非中斷 | 不中斷 |
原因
使用 AddAuthorization 可以轉換成新的 AddAuthorizationBuilder。
檔案描述
使用 AddAuthorizationBuilder
來註冊授權服務和建構原則。
如何修正違規
若要修正此規則的違規,請將 AddAuthorization
的用法取代為 AddAuthorizationBuilder
。
程式碼修正會針對 AuthorizationOptions 的下列屬性轉換 setter 的任何使用方式:
這些 setter 使用方式會在 AuthorizationBuilder 上轉換成對等的方法呼叫:
當傳遞至 AddAuthorization
的設定動作使用下列 AuthorizationOptions
的任一成員時,不會報告任何診斷:
- GetPolicy(String) 方法
- DefaultPolicy getter
- FallbackPolicy getter
- InvokeHandlersAfterFailure getter
針對 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();
隱藏警告的時機
此診斷的嚴重性層級為「資訊」。 如果您不想使用新語法,請隱藏警告。