网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
namespace Dpz.Core.WebApi.Security;

/// <summary>
/// 权限授权扩展
/// </summary>
public static class PermissionAuthorizationExtensions
{
    /// <summary>
    /// 添加权限授权
    /// </summary>
    /// <param name="services"></param>
    public static void AddPermissionAuthorization(this IServiceCollection services)
    {
        services.AddScoped<IAuthorizationHandler, PermissionHandler>();

        var permissions = Enum.GetValues(typeof(Permissions))
            .Cast<Permissions>()
            .Where(p => p != 0);

        var builder = services.AddAuthorizationBuilder();

        foreach (var permission in permissions)
        {
            builder.AddPolicy(
                permission.ToString(),
                policy => policy.Requirements.Add(new PermissionRequirement(permission.ToString()))
            );
        }
    }
}
loading