Udostępnij za pośrednictwem


SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Metoda

Definicja

Wystawia token zabezpieczający.

public:
 virtual System::IdentityModel::Protocols::WSTrust::RequestSecurityTokenResponse ^ Issue(System::Security::Claims::ClaimsPrincipal ^ principal, System::IdentityModel::Protocols::WSTrust::RequestSecurityToken ^ request);
public virtual System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse Issue (System.Security.Claims.ClaimsPrincipal principal, System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request);
abstract member Issue : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse
override this.Issue : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse
Public Overridable Function Issue (principal As ClaimsPrincipal, request As RequestSecurityToken) As RequestSecurityTokenResponse

Parametry

principal
ClaimsPrincipal

Element ClaimsPrincipal reprezentujący tożsamość osoby żądającej tokenu.

request
RequestSecurityToken

Element RequestSecurityToken reprezentujący żądanie tokenu zabezpieczającego. Obejmuje to komunikat żądania, a także inne informacje związane z klientem, takie jak kontekst autoryzacji.

Zwraca

Element RequestSecurityTokenResponse zawierający wystawiony token zabezpieczający.

Uwagi

Ta metoda implementuje powiązanie problemu zdefiniowane w specyfikacji WS-Trust. Domyślna implementacja Issue metody przetwarza żądanie przychodzące (RST) za pośrednictwem potoku wystawiania tokenu (wystawiania oświadczeń) i zwraca odpowiedź (RSTR), która zawiera token zabezpieczający z odpowiednimi oświadczeniami w celu uwierzytelnienia osoby żądającej za pomocą żądania żądania lub odpowiedniego wyjątku. Potok wystawiania tokenu w domyślnej implementacji składa się z wywołań do następujących metod (klasy SecurityTokenService ).

  1. Metoda ValidateRequest sprawdzania poprawności żądania (RST).

  2. Metoda GetScope pobierania obiektu zawierającego Scope informacje o jednostki uzależnionej skojarzonej z żądaniem. Tę metodę należy zastąpić. Jeśli GetScope zwraca nullwartość InvalidOperationException , jest zgłaszana wartość .

  3. Metoda CreateSecurityTokenDescriptor zwracania deskryptora tokenu zabezpieczającego na podstawie RST i Scope obiektu zwróconego w poprzednim kroku. Deskryptor tokenu zabezpieczającego (SecurityTokenDescriptor) zawiera informacje o żądaniu w formularzu, który może być używany przez procedurę obsługi tokenów. Właściwość SecurityTokenService.SecurityTokenDescriptor jest ustawiona na deskryptor zwrócony przez wywołanie. Jeśli null jest zwracana lub właściwość SigningCredentials deskryptora to null, InvalidOperationException jest zgłaszana wartość . Wyjątek jest również zgłaszany, jeśli właściwość jesttrue, ale EncryptingCredentials właściwość w zwróconym deskryptorze to null.Scope.TokenEncryptionRequired

  4. Metoda GetSecurityTokenHandler pobierania odpowiedniej procedury obsługi tokenów na podstawie żądanego rodzaju tokenu. Jeśli null zostanie zwrócona wartość , NotImplementedException zostanie zwrócona wartość .

  5. Metoda GetIssuerName pobierania nazwy wystawcy tokenu. Zgłasza wartość InvalidOperationException , jeśli nazwa jest lub jest null pusta; w przeciwnym razie ustawia TokenIssuerName właściwość na deskryptorze.

  6. Metoda GetTokenLifetime pobierania okresu istnienia tokenu i ustawia Lifetime właściwość na deskryptorze.

  7. Metoda GetProofToken pobierania tokenu dowodowego do uwzględnienia w wystawionym tokenie i ustawia Proof właściwość na deskryptorze.

  8. Metoda GetOutputClaimsIdentity pobierania oświadczeń do uwzględnienia w wystawionym tokenie i ustawia Subject właściwość na deskryptorze. Tę metodę należy zastąpić.

  9. Metoda GetResponse tworzenia odpowiedzi (RSTR), która zawiera wystawiony token.

Metodę Issue można zastąpić w celu zaimplementowania niestandardowego potoku wystawiania tokenów, jednak zwykle nie jest to konieczne w środowiskach deweloperskich i testowych, dla których są przeznaczone większość niestandardowych implementacji SecurityTokenService klasy. W wielu z tych przypadków zastąpisz metody i GetScope i opcjonalnie zastąpisz GetOutputClaimsIdentityValidateRequest metodę , aby zapewnić usługową usługę STS dla danego środowiska. Jeśli konieczne jest dalsze dostosowanie, często można go podać, przesłaniając metody implementujące każdy etap domyślnego potoku wystawiania tokenów wymienione powyżej.

Dotyczy