This documentation is archived and is not being maintained.

SecurityTokenProvider.GetTokenCore Method

Gets a security token.

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

protected abstract SecurityToken GetTokenCore(
	TimeSpan timeout


Type: System.TimeSpan
A TimeSpan that specifies the timeout value for the message that gets the security token.

Return Value

Type: System.IdentityModel.Tokens.SecurityToken
The SecurityToken that represents the security token to get.

When the GetTokenCore method is overridden and the security token passed into the token parameter cannot be obtained, throw the SecurityTokenException exception.

The GetToken method is called by the ClientCredentials class when a client sends a SOAP message and a security token is required.

The GetToken method calls the GetTokenCore method.

protected override SecurityToken GetTokenCore(TimeSpan timeout)
    // Create a SamlSecurityToken from the provided assertion
    SamlSecurityToken samlToken = new SamlSecurityToken(assertion);

    // Create a SecurityTokenSerializer that will be used to serialize the SamlSecurityToken
    WSSecurityTokenSerializer ser = new WSSecurityTokenSerializer();

    // Create a memory stream to write the serialized token into
    // Use an initial size of 64Kb
    MemoryStream s = new MemoryStream(UInt16.MaxValue);

    // Create an XmlWriter over the stream
    XmlWriter xw = XmlWriter.Create(s);

    // Write the SamlSecurityToken into the stream
    ser.WriteToken(xw, samlToken);

    // Seek back to the beginning of the stream
    s.Seek(0, SeekOrigin.Begin);

    // Load the serialized token into a DOM
    XmlDocument dom = new XmlDocument();

    // Create a KeyIdentifierClause for the SamlSecurityToken
    SamlAssertionKeyIdentifierClause samlKeyIdentifierClause = samlToken.CreateKeyIdentifierClause<SamlAssertionKeyIdentifierClause>();

    // Return a GenericXmlToken from the XML for the SamlSecurityToken, the proof token, the valid from 
    // and valid until times from the assertion and the key identifier clause created above            
    return new GenericXmlSecurityToken(dom.DocumentElement, proofToken, assertion.Conditions.NotBefore, assertion.Conditions.NotOnOrAfter, samlKeyIdentifierClause, samlKeyIdentifierClause, null);

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.