ClaimTypes Class

 

Represents the pre-defined types of claims that an entity can claim. This class cannot be inherited.

Namespace:   System.IdentityModel.Claims
Assembly:  System.IdentityModel (in System.IdentityModel.dll)

System.Object
  System.IdentityModel.Claims.ClaimTypes

public static class ClaimTypes

NameDescription
System_CAPS_pubpropertySystem_CAPS_staticAnonymous

Gets the URI for a claim that specifies the anonymous user.

System_CAPS_pubpropertySystem_CAPS_staticAuthentication

Gets the URI for a claim that specifies details about whether an identity is authenticated.

System_CAPS_pubpropertySystem_CAPS_staticAuthorizationDecision

Gets the URI for a claim that specifies an authorization decision on an entity.

System_CAPS_pubpropertySystem_CAPS_staticCountry

Gets the URI for a claim that specifies the country/region in which an entity resides.

System_CAPS_pubpropertySystem_CAPS_staticDateOfBirth

Gets the URI for a claim that specifies the date of birth of an entity.

System_CAPS_pubpropertySystem_CAPS_staticDenyOnlySid

Gets the URI for a claim that specifies a deny-only security identifier (SID) for an entity.

System_CAPS_pubpropertySystem_CAPS_staticDns

Gets the URI for a claim that specifies the DNS name associated with the computer name or with the alternative name of either the subject or issuer of an X.509 certificate.

System_CAPS_pubpropertySystem_CAPS_staticEmail

Gets the URI for a claim that specifies the email address of an entity.

System_CAPS_pubpropertySystem_CAPS_staticGender

Gets the URI for a claim that specifies the gender of an entity.

System_CAPS_pubpropertySystem_CAPS_staticGivenName

Gets the URI for a claim that specifies the given name of an entity.

System_CAPS_pubpropertySystem_CAPS_staticHash

Gets the URI for a claim that specifies a hash value.

System_CAPS_pubpropertySystem_CAPS_staticHomePhone

Gets the URI for a claim that specifies the home phone number of an entity.

System_CAPS_pubpropertySystem_CAPS_staticLocality

Gets the URI for a claim that specifies the locale in which an entity resides.

System_CAPS_pubpropertySystem_CAPS_staticMobilePhone

Gets the URI for a claim that specifies the mobile phone number of an entity.

System_CAPS_pubpropertySystem_CAPS_staticName

Gets the URI for a claim that specifies the name of an entity.

System_CAPS_pubpropertySystem_CAPS_staticNameIdentifier

Gets the URI for a claim that specifies the name of an entity.

System_CAPS_pubpropertySystem_CAPS_staticOtherPhone

Gets the URI for a claim that specifies the alternative phone number of an entity.

System_CAPS_pubpropertySystem_CAPS_staticPostalCode

Gets the URI for a claim that specifies the postal code of an entity.

System_CAPS_pubpropertySystem_CAPS_staticPPID

Gets the URI for a claim that specifies the private personal identifier (PPI) of an entity.

System_CAPS_pubpropertySystem_CAPS_staticRsa

Gets the URI for a claim that specifies an RSA key.

System_CAPS_pubpropertySystem_CAPS_staticSid

Gets the URI for a claim that specifies a security identifier (SID).

System_CAPS_pubpropertySystem_CAPS_staticSpn

Gets the URI for a claim that specifies a service principal name (SPN) claim.

System_CAPS_pubpropertySystem_CAPS_staticStateOrProvince

Gets the URI for a claim that specifies the state or province in which an entity resides.

System_CAPS_pubpropertySystem_CAPS_staticStreetAddress

Gets the URI for a claim that specifies the street address of an entity.

System_CAPS_pubpropertySystem_CAPS_staticSurname

Gets the URI for a claim that specifies the surname of an entity.

System_CAPS_pubpropertySystem_CAPS_staticSystem

Gets the URI for a claim that identifies the system entity.

System_CAPS_pubpropertySystem_CAPS_staticThumbprint

Gets the URI for a claim that specifies a thumbprint.

System_CAPS_pubpropertySystem_CAPS_staticUpn

Gets the URI for a claim that specifies a user principal name (UPN).

System_CAPS_pubpropertySystem_CAPS_staticUri

Gets the URI for a claim that specifies a URI.

System_CAPS_pubpropertySystem_CAPS_staticWebpage

Gets the URI for a claim that specifies the Web page of an entity.

System_CAPS_pubpropertySystem_CAPS_staticX500DistinguishedName

Gets the string that contains the URI for a distinguished name claim of an X.509 certificate.

Use the ClaimTypes class to search for a particular type of claim in a ClaimSet or to create a claim. To search for a particular type of claim in a ClaimSet, use the FindClaims(String, String) method and use the properties of this class to specify the claim type for the claimType parameter. When the constructor for the Claim class is used to create a new claim, use the properties of the ClaimTypes class to specify the claimType parameter. For many of the claim types, the Claim class has static properties that return a claim of a specific type. For instance, the CreateHashClaim(Byte[]) method returns a claim using the Hash claim type.


using System;
using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates;
using System.IdentityModel.Claims; 
using System.IdentityModel.Policy; 
using System.IdentityModel.Tokens; 
using System.IdentityModel.Selectors;
using System.ServiceModel;

namespace Microsoft.ServiceModel.Samples.SupportingTokens
{
    [ServiceContract]
    public interface IEchoService : IDisposable
    {
        [OperationContract]
        string Echo();
    }
    // Service class that implements the service contract.
    [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
    public class EchoService : IEchoService
    {
        public string Echo()
        {
            string userName;
            string certificateSubjectName;
            GetCallerIdentities(OperationContext.Current.ServiceSecurityContext, out userName, out certificateSubjectName);
            return String.Format("Hello {0}, {1}", userName, certificateSubjectName);
        }

        public void Dispose()
        {
        }


        bool TryGetClaimValue<TClaimResource>(ClaimSet claimSet, string claimType, out TClaimResource resourceValue)
            where TClaimResource : class
        {
            resourceValue = default(TClaimResource);
            IEnumerable<Claim> matchingClaims = claimSet.FindClaims(claimType, Rights.PossessProperty);
            if (matchingClaims == null)
                return false;
            IEnumerator<Claim> enumerator = matchingClaims.GetEnumerator();
            if (enumerator.MoveNext())
            {
                resourceValue = (enumerator.Current.Resource == null) ? null : (enumerator.Current.Resource as TClaimResource);
                return true;
            }
            else
            {
                return false;
            }
        }

        // Returns the username and certificate subject name provided by the client.
        void GetCallerIdentities(ServiceSecurityContext callerSecurityContext, out string userName, out string certificateSubjectName)
        {
            userName = null;
            certificateSubjectName = null;

            // Look in all the claimsets in the authorization context.
            foreach (ClaimSet claimSet in callerSecurityContext.AuthorizationContext.ClaimSets)
            {
                // Try to find a Upn claim. This has been generated from the windows username.
                string tmpName;
                if (TryGetClaimValue<string>(claimSet, ClaimTypes.Upn, out tmpName))
                {
                    userName = tmpName;
                }
                else
                {
                    // Try to find an X500DisinguishedName claim. This has been generated from the client certificate.
                    X500DistinguishedName tmpDistinguishedName;
                    if (TryGetClaimValue<X500DistinguishedName>(claimSet, ClaimTypes.X500DistinguishedName, out tmpDistinguishedName))
                    {
                        certificateSubjectName = tmpDistinguishedName.Name;
                    }
                }
            }
        }
    }
}

.NET Framework
Available since 3.0

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: