Table of Contents

Class ClaimExtensions

Namespace
NuvTools.Security.Extensions
Assembly
NuvTools.Security.dll

Provides extension methods for working with collections of Claim objects.

public static class ClaimExtensions
Inheritance
ClaimExtensions
Inherited Members

Remarks

These extensions simplify the process of adding permission claims and bulk-adding claims from static class constants.

Methods

AddByClass(List<Claim>, string, Type)

Adds claims to the collection by reading all public static string constants from a specified class type.

public static void AddByClass(this List<Claim> claims, string claimType, Type classType)

Parameters

claims List<Claim>

The list of claims to add to.

claimType string

The claim type to assign to all extracted values.

classType Type

The type of the class containing the constant values.

Examples

public static class UserPermissions
{
    public const string Read = "users.read";
    public const string Write = "users.write";
    public const string Delete = "users.delete";
}

var claims = new List<Claim>();
claims.AddByClass("permission", typeof(UserPermissions));
// Results in 3 claims with type "permission" and values "users.read", "users.write", "users.delete"

Remarks

This method uses reflection to find all public, static, readonly string fields in the specified class and creates a claim for each one using the specified claim type. This is useful when you have a permissions class with multiple permission constant values.

AddPermission(List<Claim>, string)

Adds a permission claim to the claims collection.

public static void AddPermission(this List<Claim> claims, string value)

Parameters

claims List<Claim>

The list of claims to add to.

value string

The permission value to add.

Examples

var claims = new List<Claim>();
claims.AddPermission("users.read");
claims.AddPermission("users.write");

Remarks

This is a convenience method that creates a claim with the Permission claim type.

AddPermissionByClass(List<Claim>, Type)

Adds permission claims to the collection by reading all public static string constants from a specified class type.

public static void AddPermissionByClass(this List<Claim> claims, Type classType)

Parameters

claims List<Claim>

The list of claims to add to.

classType Type

The type of the class containing the permission constant values.

Examples

public static class UserPermissions
{
    public const string Read = "users.read";
    public const string Write = "users.write";
}

var claims = new List<Claim>();
claims.AddPermissionByClass(typeof(UserPermissions));
// Results in 2 permission claims

Remarks

This is a convenience method that calls AddByClass(List<Claim>, string, Type) with Permission as the claim type.