public UserIdentity(int identifier, string externalUserIdentifier, IEnumerable <Claim> claims)
            : base(claims)
        {
            NullGuard.NotNullOrWhiteSpace(externalUserIdentifier, nameof(externalUserIdentifier))
            .NotNull(claims, nameof(claims));

            Identifier = identifier;

            base.AddClaim(ClaimHelper.CreateExternalUserIdentifierClaim(externalUserIdentifier));
        }
        public ClientSecretIdentity(int identifier, string friendlyName, string clientId, string clientSecret, IEnumerable <Claim> claims)
            : base(claims)
        {
            NullGuard.NotNullOrWhiteSpace(friendlyName, nameof(friendlyName))
            .NotNullOrWhiteSpace(clientId, nameof(clientId))
            .NotNullOrWhiteSpace(clientSecret, nameof(clientSecret))
            .NotNull(claims, nameof(claims));

            Identifier   = identifier;
            ClientSecret = clientSecret;

            base.AddClaim(ClaimHelper.CreateNameClaim(friendlyName));
            base.AddClaim(ClaimHelper.CreateNameIdentifierClaim(clientId));
            base.AddClaim(ClaimHelper.CreateFriendlyNameClaim(friendlyName));
            base.AddClaim(ClaimHelper.CreateClientIdClaim(clientId));
        }