Introduced IAuthController with AuthService and User properties to standardize authentication handling. Added AuthorizationControllerExtensions with IsUserInPolicyAsync to simplify policy-based authorization checks. Included necessary using directives.
38 lines
863 B
C#
38 lines
863 B
C#
using System.Security.Claims;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
namespace EnvelopeGenerator.API.Controllers.Interfaces;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public interface IAuthController
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
IAuthorizationService AuthService { get; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
ClaimsPrincipal User { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public static class AuthControllerExtensions
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="controller"></param>
|
|
/// <param name="policyName"></param>
|
|
/// <returns></returns>
|
|
public static async Task<bool> IsUserInPolicyAsync(this IAuthController controller, string policyName)
|
|
{
|
|
var result = await controller.AuthService.AuthorizeAsync(controller.User, policyName);
|
|
return result.Succeeded;
|
|
}
|
|
} |