RequestSecurityToken 类

定义

表示请求安全标记的 wst:RequestSecurity 元素(RST)。

public ref class RequestSecurityToken : System::IdentityModel::Protocols::WSTrust::WSTrustMessage
public class RequestSecurityToken : System.IdentityModel.Protocols.WSTrust.WSTrustMessage
type RequestSecurityToken = class
    inherit WSTrustMessage
Public Class RequestSecurityToken
Inherits WSTrustMessage
继承
RequestSecurityToken

示例

本主题中使用的代码示例取自示例 Custom Token 。 此示例提供了自定义类,这些类支持处理简单 Web 令牌 (SWT) ,它还包括能够为 SWT 令牌提供服务的被动 STS 的实现。 STS 由派生自 SecurityTokenService的类实现。 从其令牌颁发管道调用的 SecurityTokenService 类的许多方法(如果其参数)将对象作为一个 RequestSecurityToken 对象。 有关此示例和可用于 WIF 的其他示例以及下载位置的信息,请参阅 WIF 代码示例索引

下面的代码示例演示 SecurityTokenService.GetScope 方法的实现。 方法采用 RequestSecurityToken 作为其参数之一,此参数的属性用于设置方法返回的对象的属性 Scope

// Certificate Constants
private const string SIGNING_CERTIFICATE_NAME = "CN=localhost";
private const string ENCRYPTING_CERTIFICATE_NAME = "CN=localhost";

private SigningCredentials _signingCreds;
private EncryptingCredentials _encryptingCreds;
// Used for validating applies to address, set to URI used in RP app of application, could also have been done via config
private string _addressExpected = "http://localhost:19851/";
/// <summary>
/// This method returns the configuration for the token issuance request. The configuration
/// is represented by the Scope class. In our case, we are only capable of issuing a token to a
/// single RP identity represented by the _encryptingCreds field.
/// </summary>
/// <param name="principal">The caller's principal</param>
/// <param name="request">The incoming RST</param>
/// <returns></returns>
protected override Scope GetScope(ClaimsPrincipal principal, RequestSecurityToken request)
{
    // Validate the AppliesTo address
    ValidateAppliesTo( request.AppliesTo );

    // Create the scope using the request AppliesTo address and the RP identity
    Scope scope = new Scope( request.AppliesTo.Uri.AbsoluteUri, _signingCreds );

    if (Uri.IsWellFormedUriString(request.ReplyTo, UriKind.Absolute))
    {
        if (request.AppliesTo.Uri.Host != new Uri(request.ReplyTo).Host)
            scope.ReplyToAddress = request.AppliesTo.Uri.AbsoluteUri;
        else
            scope.ReplyToAddress = request.ReplyTo;
    }
    else
    {
        Uri resultUri = null;
        if (Uri.TryCreate(request.AppliesTo.Uri, request.ReplyTo, out resultUri))
            scope.ReplyToAddress = resultUri.AbsoluteUri;
        else
            scope.ReplyToAddress = request.AppliesTo.Uri.ToString() ;
    }

    // Note: In this sample app only a single RP identity is shown, which is localhost, and the certificate of that RP is 
    // populated as _encryptingCreds
    // If you have multiple RPs for the STS you would select the certificate that is specific to 
    // the RP that requests the token and then use that for _encryptingCreds
    scope.EncryptingCredentials = _encryptingCreds;

    return scope;
}
/// <summary>
/// Validates the appliesTo and throws an exception if the appliesTo is null or appliesTo contains some unexpected address.
/// </summary>
/// <param name="appliesTo">The AppliesTo parameter in the request that came in (RST)</param>
/// <returns></returns>
void ValidateAppliesTo(EndpointReference appliesTo)
{
    if (appliesTo == null)
    {
        throw new InvalidRequestException("The appliesTo is null.");
    }

    if (!appliesTo.Uri.Equals(new Uri(_addressExpected)))
    {
        throw new InvalidRequestException(String.Format("The relying party address is not valid. Expected value is {0}, the actual value is {1}.", _addressExpected, appliesTo.Uri.AbsoluteUri));
    }
}

注解

wst:RequestSecurityToken 元素 (消息) 包含用于从安全令牌服务请求安全令牌 (STS) 的参数和属性。 消息 (或元素) 缩写为 RST。 类 RequestSecurityToken 包含表示 RST 元素的属性。 RST 可以形成与 WS-Trust 定义的任何请求绑定相对应的请求;例如,颁发绑定、续订绑定、验证绑定或取消绑定。 类中的 RequestSecurityToken 许多属性对应于仅在这些绑定定义的特定请求类型中存在的元素。 根据特定 RequestSecurityToken 对象表示的请求类型或其表示的特定请求中的参数,对象的某些属性可能是 null

STS 在包含 wst:RequestSecurityTokenResponse 元素 (RSTR) 的消息中返回对请求的响应。 此消息由 RequestSecurityTokenResponse 类表示。

有关此类代表的元素的详细信息,请参阅适用于你的方案的 WS-Trust 规范:WS-Trust 2005 年 2 月WS-Trust 1.3WS-Trust 1.4

构造函数

RequestSecurityToken()

初始化 RequestSecurityToken 类的新实例。

RequestSecurityToken(String)

使用指定的请求类型初始化 RequestSecurityToken 类的新实例。

RequestSecurityToken(String, String)

使用指定的请求类型初始化 RequestSecurityToken 类的新实例。

属性

ActAs

获取或设置请求者尝试充当的标识的安全令牌。

AdditionalContext

获取或设置请求的附加上下文信息。

AllowPostdating

获取或设置 wst:AllowPostdating 元素的内容。

(继承自 WSTrustMessage)
AppliesTo

获取或设置 wsp:AppliesTo 元素的内容。

(继承自 WSTrustMessage)
AuthenticationType

获取或设置 wst:AuthenticationType 元素的内容。

(继承自 WSTrustMessage)
BinaryExchange

获取或设置 wst:BinaryExchange 元素的内容。

(继承自 WSTrustMessage)
CancelTarget

获取或设置要在 WS-Trust 取消请求中取消的令牌。

CanonicalizationAlgorithm

获取或设置 wst:CanonicalizationAlgorithm 元素的内容。

(继承自 WSTrustMessage)
Claims

获取客户端(请求者)请求的声明类型。

ComputedKeyAlgorithm

当计算密钥被用于公开的标记时,获取表示拟用期望算法的 URI。

Context

获取或设置 RST 或 RSTR 上 Context 属性的内容。

(继承自 WSTrustMessage)
Delegatable

获取或设置指定是否应将颁发的令牌标记为可委派的值。

DelegateTo

获取或设置应向其委派已颁发令牌的标识。

Encryption

获取或设置令牌信息以及加密时要使用的密钥。

EncryptionAlgorithm

获取或设置 wst:EncryptionAlgorithm 元素的内容。

(继承自 WSTrustMessage)
EncryptWith

获取或设置 wst:EncryptWith 元素的内容。

(继承自 WSTrustMessage)
Entropy

获取或设置 wst:Entropy 元素的内容。

(继承自 WSTrustMessage)
Forwardable

获取或设置指定是否应将颁发的令牌标记为可转发的值。

Issuer

获取或设置 wst:OnBehalfOf 标记的颁发者。

KeySizeInBits

获取或设置 RequestSecurityToken (RST) 消息内的 wst:KeySize 元素的内容。

(继承自 WSTrustMessage)
KeyType

获取或设置 RequestSecurityToken (RST) 消息内的 wst:KeyType 元素的内容。

(继承自 WSTrustMessage)
KeyWrapAlgorithm

获取或设置 wst:KeyWrapAlgorithm 元素的内容。

(继承自 WSTrustMessage)
Lifetime

获取或设置 RequestSecurityToken (RST) 消息内的 wst:Lifetime 元素的内容。

(继承自 WSTrustMessage)
OnBehalfOf

获取或设置代表发出请求的标识的令牌。

Participants

获取或设置将授权使用已颁发令牌的参与者。

ProofEncryption

获取或设置要用于加密证明令牌的令牌。

Properties

获取用来扩展对象的属性包。

(继承自 OpenObject)
Renewing

获取或设置 WS-Trust 续订请求的续订语义。

RenewTarget

获取或设置要在 WS-Trust 续订请求中续订的令牌。

ReplyTo

获取或设置用于依赖依赖方的地址。

(继承自 WSTrustMessage)
RequestType

获取或设置 wst:RequestType 元素。

(继承自 WSTrustMessage)
SecondaryParameters

获取或设置其请求者不是发出方的参数。

SignatureAlgorithm

获取或设置 wst:SignatureAlgorithm 元素的内容。

(继承自 WSTrustMessage)
SignWith

获取或设置 wst:SignWith 元素的内容。

(继承自 WSTrustMessage)
TokenType

获取或设置 wst:TokenType 元素的内容。

(继承自 WSTrustMessage)
UseKey

获取或设置wst:UseKey 元素的内容。

(继承自 WSTrustMessage)
ValidateTarget

获取或设置要在 WS-Trust 验证请求中验证的令牌。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅