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 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 bir nesne olarak alır RequestSecurityToken . 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, parametresinden biri 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 ettiği istek türüne veya temsil ettiği belirli istekte bulunan parametrelere bağlı olarak, nesnenin bazı özellikleri olabilir null.

STS, wst:RequestSecurityTokenResponse öğesi (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 ettiği öğe 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

Name Description
RequestSecurityToken()

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

RequestSecurityToken(String, String)

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

RequestSecurityToken(String)

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

Özellikler

Name Description
ActAs

İstek sahibinin işlem yapmaya çalıştığı kimlik iç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 belirteci iptal edilecek şekilde 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

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

Context

RST veya RSTR'de 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

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

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

Bir RequestSecurityToken (RST) iletisi içinde 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 paketini 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

Name Description
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()

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

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

Geçerli Objectbasit bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.