Bagikan melalui


RequestSecurityToken Kelas

Definisi

Mewakili elemen wst:RequestSecurityToken (RST), yang digunakan untuk meminta token keamanan.

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

Contoh

Contoh kode yang digunakan dalam topik ini diambil dari Custom Token sampel. Sampel ini menyediakan kelas kustom yang memungkinkan pemrosesan Simple Web Tokens (SWT) dan mencakup implementasi STS pasif yang mampu melayani token SWT. STS diimplementasikan oleh kelas yang berasal dari SecurityTokenService. Banyak metode SecurityTokenService kelas yang dipanggil dari alur penerbitan tokennya mengambil RequestSecurityToken objek sebagai satu jika parameternya. Untuk informasi tentang sampel ini dan sampel lain yang tersedia untuk WIF dan tentang tempat mengunduhnya, lihat Indeks Sampel Kode WIF.

Contoh kode berikut menunjukkan implementasi SecurityTokenService.GetScope metode . Metode ini mengambil RequestSecurityToken sebagai salah satu parameter dan properti parameter ini digunakan untuk mengatur properti pada Scope objek yang dikembalikan oleh metode .

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

Keterangan

Elemen wst:RequestSecurityToken (pesan) berisi parameter dan properti yang digunakan untuk meminta token keamanan dari layanan token keamanan (STS). Pesan (atau elemen) disingkat sebagai RST. Kelas RequestSecurityToken berisi properti yang mewakili elemen RST. RST dapat membentuk permintaan yang sesuai dengan salah satu pengikatan permintaan yang ditentukan oleh WS-Trust; misalnya, pengikatan Penerbitan, pengikatan Perpanjangan, pengikatan Validasi, atau pengikatan Batal. Banyak properti di RequestSecurityToken kelas sesuai dengan elemen yang hanya ada dalam jenis permintaan tertentu seperti yang didefinisikan oleh pengikatan ini. Tergantung pada jenis permintaan yang diwakili objek tertentu RequestSecurityToken atau parameter yang ada dalam permintaan tertentu yang diwakilinya, beberapa properti objek mungkin null.

STS mengembalikan respons terhadap permintaan dalam pesan yang berisi elemen wst:RequestSecurityTokenResponse (RSTR). Pesan ini diwakili oleh RequestSecurityTokenResponse kelas .

Untuk informasi selengkapnya tentang elemen yang diwakili kelas ini, lihat spesifikasi WS-Trust yang berlaku untuk skenario Anda: WS-Trust Februari 2005, WS-Trust 1.3, atau WS-Trust 1.4.

Konstruktor

RequestSecurityToken()

Menginisialisasi instans baru kelas RequestSecurityToken.

RequestSecurityToken(String)

Menginisialisasi instans RequestSecurityToken baru kelas dengan jenis permintaan yang ditentukan.

RequestSecurityToken(String, String)

Menginisialisasi instans RequestSecurityToken baru kelas dengan jenis permintaan yang ditentukan.

Properti

ActAs

Mendapatkan atau mengatur token keamanan untuk identitas yang coba ditindaklanjuti pemohon.

AdditionalContext

Mendapatkan atau mengatur informasi konteks tambahan untuk permintaan tersebut.

AllowPostdating

Mendapatkan atau mengatur konten elemen wst:AllowPostdating.

(Diperoleh dari WSTrustMessage)
AppliesTo

Mendapatkan atau mengatur konten elemen wsp:AppliesTo.

(Diperoleh dari WSTrustMessage)
AuthenticationType

Mendapatkan atau mengatur konten elemen wst:AuthenticationType.

(Diperoleh dari WSTrustMessage)
BinaryExchange

Mendapatkan atau mengatur konten elemen wst:BinaryExchange.

(Diperoleh dari WSTrustMessage)
CancelTarget

Mendapatkan atau mengatur token yang akan dibatalkan dalam permintaan pembatalan WS-Trust.

CanonicalizationAlgorithm

Mendapatkan atau mengatur konten elemen wst:CanonicalizationAlgorithm.

(Diperoleh dari WSTrustMessage)
Claims

Mendapatkan jenis klaim yang diminta oleh klien (pemohon).

ComputedKeyAlgorithm

Mendapatkan URI yang mewakili algoritma yang diinginkan untuk digunakan saat kunci komputasi digunakan untuk token yang dikeluarkan.

Context

Mendapatkan atau mengatur konten atribut Context pada RST atau RSTR.

(Diperoleh dari WSTrustMessage)
Delegatable

Mendapatkan atau menetapkan nilai yang menentukan apakah token yang dikeluarkan harus ditandai sebagai dapat dilegagasi.

DelegateTo

Mendapatkan atau mengatur identitas tempat token yang dikeluarkan harus didelegasikan.

Encryption

Mendapatkan atau mengatur informasi tentang token dan kunci yang akan digunakan saat mengenkripsi.

EncryptionAlgorithm

Mendapatkan atau mengatur konten elemen wst:EncryptionAlgorithm.

(Diperoleh dari WSTrustMessage)
EncryptWith

Mendapatkan atau mengatur konten elemen wst:EncryptWith.

(Diperoleh dari WSTrustMessage)
Entropy

Mendapatkan atau mengatur konten elemen wst:Entropy.

(Diperoleh dari WSTrustMessage)
Forwardable

Mendapatkan atau menetapkan nilai yang menentukan apakah token yang dikeluarkan harus ditandai sebagai dapat diteruskan.

Issuer

Mendapatkan atau mengatur penerbit token wst:OnBehalfOf.

KeySizeInBits

Mendapatkan atau mengatur konten elemen wst:KeySize di dalam pesan RequestSecurityToken (RST).

(Diperoleh dari WSTrustMessage)
KeyType

Mendapatkan atau mengatur konten elemen wst:KeyType di dalam pesan RequestSecurityToken (RST).

(Diperoleh dari WSTrustMessage)
KeyWrapAlgorithm

Mendapatkan atau mengatur konten elemen wst:KeyWrapAlgorithm.

(Diperoleh dari WSTrustMessage)
Lifetime

Mendapatkan atau mengatur konten elemen wst:Lifetime di dalam pesan RequestSecurityToken (RST).

(Diperoleh dari WSTrustMessage)
OnBehalfOf

Mendapatkan atau mengatur token untuk identitas atas nama permintaan yang sedang dibuat.

Participants

Mendapatkan atau mengatur peserta yang berwenang untuk menggunakan token yang dikeluarkan.

ProofEncryption

Mendapatkan atau mengatur token yang akan digunakan untuk mengenkripsi token bukti.

Properties

Mendapatkan tas properti untuk memperluas objek .

(Diperoleh dari OpenObject)
Renewing

Mendapatkan atau mengatur semantik pembaruan untuk permintaan perpanjangan WS-Trust.

RenewTarget

Mendapatkan atau mengatur token yang akan diperbarui dalam permintaan perpanjangan WS-Trust.

ReplyTo

Mendapatkan atau mengatur alamat yang akan digunakan untuk membalas ke Pihak yang Mengandalkan.

(Diperoleh dari WSTrustMessage)
RequestType

Mendapatkan atau mengatur elemen wst:RequestType.

(Diperoleh dari WSTrustMessage)
SecondaryParameters

Mendapatkan atau mengatur parameter yang pemohonnya bukan pencari.

SignatureAlgorithm

Mendapatkan atau mengatur konten elemen wst:SignatureAlgorithm.

(Diperoleh dari WSTrustMessage)
SignWith

Mendapatkan atau mengatur konten elemen wst:SignWith.

(Diperoleh dari WSTrustMessage)
TokenType

Mendapatkan atau mengatur konten elemen wst:TokenType.

(Diperoleh dari WSTrustMessage)
UseKey

Mendapatkan atau mengatur konten elemen wst:UseKey.

(Diperoleh dari WSTrustMessage)
ValidateTarget

Mendapatkan atau mengatur token yang akan divalidasi dalam permintaan validasi WS-Trust.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga