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
claimsList<Claim>The list of claims to add to.
claimTypestringThe claim type to assign to all extracted values.
classTypeTypeThe 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
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
claimsList<Claim>The list of claims to add to.
classTypeTypeThe 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.