RequestSecurityToken Sınıf

Tanım

Güvenlik belirteci istemek için kullanılan wst:RequestSecurityToken öğesini (RST) temsil eder.

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
Devralma
RequestSecurityToken

Örnekler

Bu konuda kullanılan kod örneği örnekten Custom Token alınmıştır. Bu örnek, Basit Web Belirteçlerinin (SWT) işlenmesini sağlayan özel sınıflar sağlar ve SWT belirtecini sunabilen pasif bir STS uygulamasını içerir. STS, öğesinden SecurityTokenServicetüretilen bir sınıf tarafından uygulanır. Sınıfının belirteç verme işlem hattından çağrılan yöntemlerinin SecurityTokenService çoğu, parametreleri gibi bir RequestSecurityToken nesne alır. Bu örnek ve WIF için kullanılabilen diğer örnekler ve bunların nereden indirileceği hakkında bilgi için bkz. WIF Kod Örneği Dizini.

Aşağıdaki kod örneği, yönteminin SecurityTokenService.GetScope bir uygulamasını gösterir. yöntemi, parametresi olarak alır RequestSecurityToken ve yöntemi tarafından döndürülen nesnede Scope özellikleri ayarlamak için bu parametrenin özellikleri kullanılır.

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

Açıklamalar

wst:RequestSecurityToken öğesi (ileti), bir güvenlik belirteci hizmetinden (STS) güvenlik belirteci istemek için kullanılan parametreleri ve özellikleri içerir. İleti (veya öğesi) RST olarak kısaltılır. sınıfı, RequestSecurityToken RST öğelerini temsil eden özellikler içerir. RST, WS-Trust tarafından tanımlanan istek bağlamalarından herhangi birine karşılık gelen bir istek oluşturabilir; Örneğin Verme bağlaması, Yenileme bağlaması, Doğrulama bağlaması veya İptal bağlaması. sınıfındaki RequestSecurityToken özelliklerin çoğu, yalnızca bu bağlamalar tarafından tanımlanan belirli istek türlerinde bulunan öğelere karşılık gelir. Belirli RequestSecurityToken bir nesnenin temsil eden istek türüne veya temsil eden belirli istekte bulunan parametrelere bağlı olarak, nesnenin bazı özellikleri olabilir null.

STS, wst:RequestSecurityTokenResponse öğesini (RSTR) içeren bir iletide isteğe bir yanıt döndürür. Bu ileti sınıfı tarafından RequestSecurityTokenResponse temsil edilir.

Bu sınıfın temsil eden öğesi hakkında daha fazla bilgi için senaryonuz için geçerli olan WS-Trust belirtimine bakın: WS-Trust Şubat 2005, WS-Trust 1.3 veya WS-Trust 1.4.

Oluşturucular

RequestSecurityToken()

RequestSecurityToken sınıfının yeni bir örneğini başlatır.

RequestSecurityToken(String)

Belirtilen istek türüyle RequestSecurityToken sınıfının yeni bir örneğini başlatır.

RequestSecurityToken(String, String)

Belirtilen istek türüyle RequestSecurityToken sınıfının yeni bir örneğini başlatır.

Özellikler

ActAs

İstek sahibinin işlem yapmaya çalıştığı kimliğin güvenlik belirtecini alır veya ayarlar.

AdditionalContext

İstek için ek bağlam bilgilerini alır veya ayarlar.

AllowPostdating

wst:AllowPostdating öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
AppliesTo

wsp:AppliesTo öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
AuthenticationType

wst:AuthenticationType öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
BinaryExchange

wst:BinaryExchange öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
CancelTarget

WS-Trust iptal isteğinde iptal edilecek belirteci alır veya ayarlar.

CanonicalizationAlgorithm

wst:CanonicalizationAlgorithm öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
Claims

İstemci (istek sahibi) tarafından istenen talep türlerini alır.

ComputedKeyAlgorithm

Verilen belirteçler için hesaplanan anahtarlar kullanıldığında kullanılacak istenen algoritmayı temsil eden bir URI alır.

Context

RST veya RSTR'deki Context özniteliğinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
Delegatable

Verilen belirtecin delegatable olarak işaretlenip işaretlenmediğini belirten bir değer alır veya ayarlar.

DelegateTo

Verilen belirtecin temsilci olarak atanacağı kimliği alır veya ayarlar.

Encryption

Şifreleme sırasında kullanılacak belirteç ve anahtarla ilgili bilgileri alır veya ayarlar.

EncryptionAlgorithm

wst:EncryptionAlgorithm öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
EncryptWith

wst:EncryptWith öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
Entropy

wst:Entropy öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
Forwardable

Verilen belirtecin iletilebilir olarak işaretlenip işaretlenmediğini belirten bir değer alır veya ayarlar.

Issuer

wst:OnBehalfOf belirtecinin verenini alır veya ayarlar.

KeySizeInBits

RequestSecurityToken (RST) iletisinin içindeki wst:KeySize öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
KeyType

RequestSecurityToken (RST) iletisinin içindeki wst:KeyType öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
KeyWrapAlgorithm

wst:KeyWrapAlgorithm öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
Lifetime

RequestSecurityToken (RST) iletisinin içindeki wst:Lifetime öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
OnBehalfOf

İsteğin yapıldığı kimliğin belirtecini alır veya ayarlar.

Participants

Verilen belirteci kullanma yetkisi olan katılımcıları alır veya ayarlar.

ProofEncryption

Kanıt belirtecini şifrelemek için kullanılacak belirteci alır veya ayarlar.

Properties

Nesneyi genişletmek için özellikler çantasını alır.

(Devralındığı yer: OpenObject)
Renewing

WS-Trust yenileme isteğinin yenileme semantiğini alır veya ayarlar.

RenewTarget

WS-Trust yenileme isteğinde yenilenecek belirteci alır veya ayarlar.

ReplyTo

Bağlı Olan Taraf'ı yanıtlamak için kullanılacak adresi alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
RequestType

wst:RequestType öğesini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
SecondaryParameters

İstek sahibinin kaynak olmadığı parametreleri alır veya ayarlar.

SignatureAlgorithm

wst:SignatureAlgorithm öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
SignWith

wst:SignWith öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
TokenType

wst:TokenType öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
UseKey

wst:UseKey öğesinin içeriğini alır veya ayarlar.

(Devralındığı yer: WSTrustMessage)
ValidateTarget

WS-Trust doğrulama isteğinde doğrulanacak belirteci alır veya ayarlar.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.