AuthorizationContext Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

The result of evaluating all authorization policies available from the tokens in the sent message and by calling the GetAuthorizationPolicies method.

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


public abstract class AuthorizationContext : IAuthorizationComponent


Initializes a new instance of the AuthorizationContext class.


Gets the set of claims associated with an authorization policy.


Gets the date and time at which this AuthorizationContext object is no longer valid.


Gets a unique identifier for this AuthorizationContext object.


Gets a collection of non-claim properties associated with this AuthorizationContext object.


Evaluate all of the specified authorization policies and create an AuthorizationContext.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Returns a string that represents the current object.(Inherited from Object.)

Evaluating all of the authorization policies in an authorization manager results in a set of ClaimSet objects. These objects make up an authorization context.

An authorization context contains a set of claim set objects, an expiration time that specifies the span of time during which the authorization context is valid, and a unique identifier.

The AuthorizationContext for the current operation can be accessed via the AuthorizationContext property.

protected override bool CheckAccessCore(OperationContext operationContext)
    // Extract the action URI from the OperationContext. Match this against the claims
    // in the AuthorizationContext.
    string action = operationContext.RequestContext.RequestMessage.Headers.Action;
    Console.WriteLine("action: {0}", action);

    // Iterate through the various claim sets in the AuthorizationContext.
    foreach(ClaimSet cs in operationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets)
        // Examine only those claim sets issued by System.
        if (cs.Issuer == ClaimSet.System)
            // Iterate through claims of type "".
            foreach (Claim c in cs.FindClaims("", Rights.PossessProperty))
                // Write the Claim resource to the console.
                Console.WriteLine("resource: {0}", c.Resource.ToString());

                // If the Claim resource matches the action URI then return true to allow access.
                if (action == c.Resource.ToString())
                    return true;

    // If this point is reached, return false to deny access.
    return false;                 

.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