// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Linq; using System.Security.Claims; using System.Threading.Tasks; using Microsoft.Framework.Internal; namespace Microsoft.AspNet.Authorization { public static class AuthorizationServiceExtensions { /// /// Checks if a user meets a specific authorization policy /// /// The authorization service. /// The user to check the policy against. /// The resource the policy should be checked with. /// The policy to check against a specific context. /// true when the user fulfills the policy, false otherwise. public static Task AuthorizeAsync([NotNull] this IAuthorizationService service, ClaimsPrincipal user, object resource, [NotNull] AuthorizationPolicy policy) { return service.AuthorizeAsync(user, resource, policy.Requirements.ToArray()); } /// /// Checks if a user meets a specific authorization policy /// /// The authorization service. /// The user to check the policy against. /// The resource the policy should be checked with. /// The policy to check against a specific context. /// true when the user fulfills the policy, false otherwise. public static bool Authorize([NotNull] this IAuthorizationService service, ClaimsPrincipal user, object resource, [NotNull] AuthorizationPolicy policy) { return service.Authorize(user, resource, policy.Requirements.ToArray()); } } }