共用方式為


SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) 方法

定義

發行安全性權杖。

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

參數

principal
ClaimsPrincipal

ClaimsPrincipal,表示權杖要求者的身分識別。

request
RequestSecurityToken

RequestSecurityToken,表示安全性權杖要求。 這包括要求訊息,以及其他用戶端的相關資訊,例如授權內容。

傳回

包含已發行安全性權杖的 RequestSecurityTokenResponse

備註

這個方法會實作 WS-Trust 規格中定義的 Issue 系結。 方法的默認實作 Issue 會透過令牌發行 (宣告發行) 管線處理傳入要求 (RST) ,並傳回回應 (RSTR) ,其中包含具有適當宣告的安全性令牌,以向 RP 或適當的例外狀況驗證要求者。 默認實作中的令牌發行管線包含對下列方法的呼叫 (SecurityTokenService 類別) 。

  1. 驗證 ValidateRequest 要求的方法 (RST) 。

  2. GetScope取得物件,Scope其中包含與要求相關聯的信賴憑證者 (RP) 的相關信息。 您必須覆寫這個方法。 如果 傳GetScope回 ,InvalidOperationException則會擲回 null

  3. 根據 CreateSecurityTokenDescriptor RST 傳回安全性令牌描述元的方法,以及 Scope 上一個步驟中傳回的物件。 安全性令牌描述元 () SecurityTokenDescriptor 包含令牌處理程式可以使用之表單中要求的相關信息。 屬性 SecurityTokenService.SecurityTokenDescriptor 會設定為呼叫所傳回的描述元。 如果 null 傳回 或 描述 SigningCredentials 項目的 屬性為 nullInvalidOperationException 則會擲回 。 如果 Scope.TokenEncryptionRequired 屬性是 true ,但 EncryptingCredentials 傳回描述元上的 屬性為 null,也會擲回例外狀況。

  4. 根據 GetSecurityTokenHandler 要求的令牌種類取得適當令牌處理程式的方法。 如果 null 傳回 , NotImplementedException 則會擲回 。

  5. 取得 GetIssuerName 令牌簽發者名稱的方法。 InvalidOperationException如果名稱為 null 或空白,則會擲回 ,否則會在TokenIssuerName描述項上設定 屬性。

  6. GetTokenLifetime取得令牌存留期的方法,並在描述項上設定 Lifetime 屬性。

  7. GetProofToken取得要包含在所發行令牌中之證明令牌的方法,並在描述項上設定 Proof 屬性。

  8. GetOutputClaimsIdentity取得要包含在所發行令牌中之宣告的方法,並在描述項上設定 Subject 屬性。 您必須覆寫這個方法。

  9. GetResponse建立包含已發行令牌之 RSTR (回應的方法) 。

您可以覆寫 Issue 方法以實作自定義令牌發行管線;不過,在開發與測試環境中,通常不需要此管線,而類別的大部分自定義實作 SecurityTokenService 都是想要的。 在許多情況下,您會覆寫 GetOutputClaimsIdentityGetScope 方法,並選擇性地覆寫 ValidateRequest 方法,為您的環境提供可服務的 STS。 如果需要進一步自定義,您可以覆寫實作上述預設令牌發行管線每個階段的方法,以提供它。

適用於