Sdílet prostřednictvím


SecurityTokenHandler.CreateToken(SecurityTokenDescriptor) Metoda

Definice

Při přepsání v odvozené třídě vytvoří token zabezpečení pomocí zadaného popisovače tokenu. Tato metoda je volána službou tokenů zabezpečení (STS).

public:
 virtual System::IdentityModel::Tokens::SecurityToken ^ CreateToken(System::IdentityModel::Tokens::SecurityTokenDescriptor ^ tokenDescriptor);
public virtual System.IdentityModel.Tokens.SecurityToken CreateToken (System.IdentityModel.Tokens.SecurityTokenDescriptor tokenDescriptor);
abstract member CreateToken : System.IdentityModel.Tokens.SecurityTokenDescriptor -> System.IdentityModel.Tokens.SecurityToken
override this.CreateToken : System.IdentityModel.Tokens.SecurityTokenDescriptor -> System.IdentityModel.Tokens.SecurityToken
Public Overridable Function CreateToken (tokenDescriptor As SecurityTokenDescriptor) As SecurityToken

Parametry

tokenDescriptor
SecurityTokenDescriptor

Popisovač tokenu zabezpečení, ze kterého má být token vytvořen. Vlastnosti popisovače tokenu jsou nastaveny před zavolání této metody.

Návraty

Token zabezpečení, který odpovídá vlastnostem popisovače tokenu.

Příklady

Následující kód ukazuje, jak přepsat metodu CreateToken pro vytvoření a vrácení tokenu z deskriptoru tokenu. Kód je převzat ze Custom Token vzorku. Tato ukázka obsahuje vlastní třídy, které umožňují zpracování jednoduchých webových tokenů (SWT). Informace o této ukázce a dalších ukázkách dostupných pro WIF a o tom, kde je stáhnout, najdete v tématu Index vzorového kódu WIF.

public override SecurityToken CreateToken(SecurityTokenDescriptor tokenDescriptor)
{
    if (tokenDescriptor == null)
    {
        throw new ArgumentNullException("tokenDescriptor");
    }

    NameValueCollection properties = new NameValueCollection();
    properties.Add(SimpleWebTokenConstants.Id, Guid.NewGuid().ToString());
    properties.Add(SimpleWebTokenConstants.Issuer, tokenDescriptor.TokenIssuerName);
    properties.Add(SimpleWebTokenConstants.Audience, tokenDescriptor.AppliesToAddress);
    properties.Add(SimpleWebTokenConstants.ExpiresOn, SecondsFromSwtBaseTime(tokenDescriptor.Lifetime.Expires));
    properties.Add(SimpleWebTokenConstants.ValidFrom, SecondsFromSwtBaseTime(tokenDescriptor.Lifetime.Created));

    foreach (Claim claim in tokenDescriptor.Subject.Claims)
    {
        properties.Add(claim.Type, claim.Value);
    }

    SimpleWebToken token = new SimpleWebToken(properties);
    return token;
}

Poznámky

Ve výchozím nastavení tato metoda vyvolá NotImplementedException výjimku.

Volána z implementace SecurityTokenService třídy .

Platí pro