SecurityTokenHandler.CreateToken(SecurityTokenDescriptor) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在派生类中重写时,使用指定的令牌描述符创建安全令牌。 此方法由安全令牌服务(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 示例。 此示例提供允许处理简单 Web 令牌(SWT)的自定义类。 有关此示例和其他可用于 WIF 的示例以及下载位置的信息,请参阅 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;
}
注解
默认情况下,此方法会引发异常 NotImplementedException 。
从类的 SecurityTokenService 实现调用。