SecurityTokenProvider.GetTokenCore(TimeSpan) Metodo

Definizione

Ottiene un token di sicurezza .

protected:
 abstract System::IdentityModel::Tokens::SecurityToken ^ GetTokenCore(TimeSpan timeout);
protected abstract System.IdentityModel.Tokens.SecurityToken GetTokenCore (TimeSpan timeout);
abstract member GetTokenCore : TimeSpan -> System.IdentityModel.Tokens.SecurityToken
Protected MustOverride Function GetTokenCore (timeout As TimeSpan) As SecurityToken

Parametri

timeout
TimeSpan

Struttura TimeSpan che specifica il valore di timeout del messaggio che ottiene il token di sicurezza.

Restituisce

La classe SecurityToken che rappresenta il token di sicurezza da ottenere.

Esempio

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();
    dom.Load(s);

    // 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);
}
    Protected Overrides Function GetTokenCore(ByVal timeout As TimeSpan) As SecurityToken
        ' Create a SamlSecurityToken from the provided assertion
        Dim samlToken As New SamlSecurityToken(assertion)

        ' Create a SecurityTokenSerializer that will be used to serialize the SamlSecurityToken
        Dim ser As New WSSecurityTokenSerializer()

        ' Create a memory stream to write the serialized token into
        ' Use an initial size of 64Kb
        Dim s As New MemoryStream(UInt16.MaxValue)

        ' Create an XmlWriter over the stream
        Dim xw As XmlWriter = 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
        Dim dom As New XmlDocument()
        dom.Load(s)

        ' Create a KeyIdentifierClause for the SamlSecurityToken
        Dim samlKeyIdentifierClause As SamlAssertionKeyIdentifierClause = samlToken.CreateKeyIdentifierClause(Of 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, Nothing)

    End Function 'GetTokenCore
End Class

Commenti

Quando viene eseguito l'override del metodo GetTokenCore e non è possibile ottenere il token di sicurezza passato nel parametro del token, generare l'eccezione SecurityTokenException.

Il metodo GetToken viene chiamato dalla classe ClientCredentials quando un messaggio SOAP viene inviato da un client ed è necessario un token di sicurezza.

Il metodo GetToken chiama il metodo GetTokenCore.

Si applica a