RequestSecurityToken Třída

Definice

Představuje wst:RequestSecurityToken element (RST), který se používá k vyžádání tokenu zabezpečení.

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
Dědičnost
RequestSecurityToken

Příklady

Příklad kódu, který se používá v tomto tématu, je převzat z ukázky Custom Token . Tato ukázka poskytuje vlastní třídy, které umožňují zpracování jednoduchých webových tokenů (SWT) a zahrnuje implementaci pasivní služby tokenů zabezpečení, která je schopna obsluhovat token SWT. Služba TOKENS je implementována třídou, která je odvozena z SecurityTokenService. Mnoho metod SecurityTokenService třídy, které jsou volána z kanálu vystavování tokenů, přebírají RequestSecurityToken objekt jako jeden, pokud jejich parametry. Informace o této ukázce a dalších ukázkách dostupných pro technologii WIF a o tom, kde je stáhnout, najdete v tématu Index vzorového kódu WIF.

Následující příklad kódu ukazuje implementaci SecurityTokenService.GetScope metody . Metoda přebírá RequestSecurityToken jako jeden ze svých parametrů a vlastnosti tohoto parametru se používají k nastavení vlastností objektu Scope , který je vrácen metodou .

// 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));
    }
}

Poznámky

Element wst:RequestSecurityToken (message) obsahuje parametry a vlastnosti, které se používají k vyžádání tokenu zabezpečení ze služby tokenů zabezpečení (STS). Zpráva (nebo element) se zkracuje na RST. Třída RequestSecurityToken obsahuje vlastnosti, které představují prvky RST. RST může vytvořit požadavek, který odpovídá libovolné vazby požadavku definované WS-Trust; Například vazbu vystavení, vazbu pro obnovení, vazbu Ověřit nebo Zrušit vazbu. Mnoho vlastností ve RequestSecurityToken třídě odpovídá prvkům, které se nacházejí pouze v konkrétních typech požadavků definovaných těmito vazbami. V závislosti na typu požadavku, který konkrétní RequestSecurityToken objekt představuje, nebo na parametrech v konkrétním požadavku, který představuje, můžou být nullněkteré vlastnosti objektu .

Služba tokenů zabezpečení vrátí odpověď na požadavek ve zprávě, která obsahuje element wst:RequestSecurityTokenResponse (RSTR). Tato zpráva je reprezentována RequestSecurityTokenResponse třídou .

Další informace o elementu, který představuje tato třída, naleznete v WS-Trust specifikace, která se vztahuje na váš scénář: WS-Trust Únor 2005, WS-Trust 1.3 nebo WS-Trust 1.4.

Konstruktory

RequestSecurityToken()

Inicializuje novou instanci RequestSecurityToken třídy .

RequestSecurityToken(String)

Inicializuje novou instanci RequestSecurityToken třídy se zadaným typem požadavku.

RequestSecurityToken(String, String)

Inicializuje novou instanci RequestSecurityToken třídy se zadaným typem požadavku.

Vlastnosti

ActAs

Získá nebo nastaví token zabezpečení pro identitu, kterou se žadatel pokouší jednat jako.

AdditionalContext

Získá nebo nastaví další kontextové informace pro požadavek.

AllowPostdating

Získá nebo nastaví obsah elementu wst:AllowPostdating.

(Zděděno od WSTrustMessage)
AppliesTo

Získá nebo nastaví obsah wsp:AppliesTo elementu.

(Zděděno od WSTrustMessage)
AuthenticationType

Získá nebo nastaví obsah elementu wst:AuthenticationType.

(Zděděno od WSTrustMessage)
BinaryExchange

Získá nebo nastaví obsah wst:BinaryExchange element.

(Zděděno od WSTrustMessage)
CancelTarget

Získá nebo nastaví token na zrušení v požadavku WS-Trust zrušení.

CanonicalizationAlgorithm

Získá nebo nastaví obsah wst:CanonicalizationAlgorithm prvek.

(Zděděno od WSTrustMessage)
Claims

Získá typy deklarací identity požadované klientem (žadatel).

ComputedKeyAlgorithm

Získá identifikátor URI, který představuje požadovaný algoritmus, který se má použít při použití vypočítaných klíčů pro vydané tokeny.

Context

Získá nebo nastaví obsah atributu Context na RST nebo RSTR.

(Zděděno od WSTrustMessage)
Delegatable

Získá nebo nastaví hodnotu, která určuje, zda vystavený token by měl být označen jako delegatable.

DelegateTo

Získá nebo nastaví identitu, na kterou by měl být vystavený token delegovaný.

Encryption

Získá nebo nastaví informace o tokenu a klíči, které se mají použít při šifrování.

EncryptionAlgorithm

Získá nebo nastaví obsah elementu wst:EncryptionAlgorithm.

(Zděděno od WSTrustMessage)
EncryptWith

Získá nebo nastaví obsah wst:EncryptWith elementu.

(Zděděno od WSTrustMessage)
Entropy

Získá nebo nastaví obsah wst:Entropy element.

(Zděděno od WSTrustMessage)
Forwardable

Získá nebo nastaví hodnotu, která určuje, zda má být vystavený token označen jako předávací.

Issuer

Získá nebo nastaví vystavitele wst:OnBehalfOf token.

KeySizeInBits

Získá nebo nastaví obsah wst:KeySize elementu uvnitř RequestSecurityToken (RST) zprávy.

(Zděděno od WSTrustMessage)
KeyType

Získá nebo nastaví obsah elementu wst:KeyType uvnitř zprávy RequestSecurityToken (RST).

(Zděděno od WSTrustMessage)
KeyWrapAlgorithm

Získá nebo nastaví obsah elementu wst:KeyWrapAlgorithm.

(Zděděno od WSTrustMessage)
Lifetime

Získá nebo nastaví obsah wst:Lifetime element uvnitř RequestSecurityToken (RST) zprávy.

(Zděděno od WSTrustMessage)
OnBehalfOf

Získá nebo nastaví token pro identitu, jejímž jménem se provádí požadavek.

Participants

Získá nebo nastaví účastníky, kteří mají oprávnění k použití vydaného tokenu.

ProofEncryption

Získá nebo nastaví token, který se má použít k šifrování tokenu proof.

Properties

Získá kontejner vlastností pro rozšíření objektu.

(Zděděno od OpenObject)
Renewing

Získá nebo nastaví sémantiku obnovení pro žádost o prodloužení WS-Trust.

RenewTarget

Získá nebo nastaví token k prodloužení v WS-Trust žádosti o prodloužení.

ReplyTo

Získá nebo nastaví adresu, která se má použít pro odpověď přijímající straně.

(Zděděno od WSTrustMessage)
RequestType

Získá nebo nastaví wst:RequestType element.

(Zděděno od WSTrustMessage)
SecondaryParameters

Získá nebo nastaví parametry, pro které žadatel není původcem.

SignatureAlgorithm

Získá nebo nastaví obsah elementu wst:SignatureAlgorithm.

(Zděděno od WSTrustMessage)
SignWith

Získá nebo nastaví obsah wst:SignWith element.

(Zděděno od WSTrustMessage)
TokenType

Získá nebo nastaví obsah wst:TokenType elementu.

(Zděděno od WSTrustMessage)
UseKey

Získá nebo nastaví obsah wst:UseKey elementu.

(Zděděno od WSTrustMessage)
ValidateTarget

Získá nebo nastaví token tak, aby byl ověřen v požadavku WS-Trust ověření.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také