Udostępnij za pośrednictwem


SecurityTokenHandler.CreateToken(SecurityTokenDescriptor) Metoda

Definicja

Po zastąpieniu w klasie pochodnej tworzy token zabezpieczający przy użyciu określonego deskryptora tokenu. Ta metoda jest wywoływana przez usługę tokenu zabezpieczającego (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

Deskryptor tokenu zabezpieczającego, z którego ma zostać utworzony token. Właściwości deskryptora tokenów są ustawiane przed wywołaniem tej metody.

Zwraca

Token zabezpieczający zgodny z właściwościami deskryptora tokenu.

Przykłady

Poniższy kod pokazuje, jak zastąpić metodę CreateToken tworzenia i zwracania tokenu z deskryptora tokenu. Kod jest pobierany z przykładu Custom Token . Ten przykład zawiera niestandardowe klasy, które umożliwiają przetwarzanie prostych tokenów internetowych (SWT). Aby uzyskać informacje na temat tego przykładu i innych przykładów dostępnych dla programu WIF oraz miejsca ich pobierania, zobacz Przykładowy indeks kodu programu 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;
}

Uwagi

Domyślnie ta metoda zgłasza NotImplementedException wyjątek.

Wywoływane z implementacji SecurityTokenService klasy.

Dotyczy