SecurityTokenHandler.CreateToken(SecurityTokenDescriptor) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При переопределении в производном классе создает токен безопасности с помощью заданного дескриптора токена. Этот метод вызывается службой токенов безопасности (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
Параметры
- tokenDescriptor
- SecurityTokenDescriptor
Дескриптор токена безопасности, на основании которого создается токен. Свойства дескриптора токена задаются до вызова этого метода.
Возвращаемое значение
токен безопасности, соответствующий свойствам дескриптора токена.
Примеры
В следующем коде показано, как переопределить CreateToken метод для создания и возврата маркера из дескриптора маркера. Код взят из Custom Token
примера. В этом примере представлены пользовательские классы, обеспечивающие обработку простых веб-маркеров (SWT). Сведения об этом и других примерах, доступных для WIF, и о том, где их можно скачать, см. в разделе WiF Code Sample Index.
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;
}
Комментарии
По умолчанию этот метод создает NotImplementedException исключение.
Вызывается из реализаций SecurityTokenService класса .