Skip to content
This repository was archived by the owner on Dec 13, 2018. It is now read-only.

Commit e82be83

Browse files
committed
Add UseAuthorization options overload
1 parent 4d25f62 commit e82be83

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/Microsoft.AspNetCore.Authorization.Policy/AuthorizationAppBuilderExtensions.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using Microsoft.AspNetCore.Authorization;
6+
using Microsoft.Extensions.Options;
67

78
namespace Microsoft.AspNetCore.Builder
89
{
@@ -17,5 +18,20 @@ public static IApplicationBuilder UseAuthorization(this IApplicationBuilder app)
1718

1819
return app.UseMiddleware<AuthorizationMiddleware>();
1920
}
21+
22+
public static IApplicationBuilder UseAuthorization(this IApplicationBuilder app, AuthorizationOptions options)
23+
{
24+
if (app == null)
25+
{
26+
throw new ArgumentNullException(nameof(app));
27+
}
28+
29+
if (options == null)
30+
{
31+
throw new ArgumentNullException(nameof(options));
32+
}
33+
34+
return app.UseMiddleware<AuthorizationMiddleware>(new DefaultAuthorizationPolicyProvider(Options.Create(options)));
35+
}
2036
}
2137
}

src/Microsoft.AspNetCore.Authorization.Policy/AuthorizationMiddleware.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ public async Task Invoke(HttpContext context)
4040
throw new ArgumentNullException(nameof(context));
4141
}
4242

43-
var policyEvaluator = context.RequestServices.GetRequiredService<IPolicyEvaluator>();
44-
4543
var endpoint = context.Features.Get<IEndpointFeature>()?.Endpoint;
4644
var authorizeData = endpoint?.Metadata.GetOrderedMetadata<IAuthorizeData>() ?? Array.Empty<IAuthorizeData>();
4745
var policy = await AuthorizationPolicy.CombineAsync(_policyProvider, authorizeData);
@@ -51,6 +49,8 @@ public async Task Invoke(HttpContext context)
5149
return;
5250
}
5351

52+
var policyEvaluator = context.RequestServices.GetRequiredService<IPolicyEvaluator>();
53+
5454
var authenticateResult = await policyEvaluator.AuthenticateAsync(policy, context);
5555

5656
// Allow Anonymous skips all authorization

0 commit comments

Comments
 (0)