ASP0025: Use AddAuthorizationBuilder to register authorization services and construct policies.
Value | |
---|---|
Rule ID | ASP0025 |
Category | Usage |
Fix is breaking or non-breaking | Non-breaking |
Cause
The use of AddAuthorization can be converted to the new AddAuthorizationBuilder.
Rule description
Use AddAuthorizationBuilder
to register authorization services and construct policies.
How to fix violations
To fix a violation of this rule, replace the usage of AddAuthorization
with AddAuthorizationBuilder
.
The code fix converts any usage of the setters for the following properties of AuthorizationOptions:
These setter usages are converted to equivalent method calls on AuthorizationBuilder:
No diagnostic is reported when the configure action passed to AddAuthorization
uses any of the following members of AuthorizationOptions
:
- The GetPolicy(String) method
- The DefaultPolicy getter
- The FallbackPolicy getter
- The InvokeHandlersAfterFailure getter
AuthorizationBuilder
doesn't have equivalents for these members of AuthorizationOptions
, so they can't be converted.
No diagnostic is reported if the configure action passed to AddAuthorization
contains operations unrelated to AuthorizationOptions
. The code fix would not be able to automatically map unrelated operations to the fluent API of AddAuthorizationBuilder
.
The following example shows code that triggers this diagnostic:
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();
The following example shows the result of applying the code fix:
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();
When to suppress warnings
The severity level of this diagnostic is Information. Suppress warnings if you don't want to use the new syntax.
ASP.NET Core
Feedback
Submit and view feedback for