SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發行安全性權杖。
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 類別) 。
驗證 ValidateRequest 要求的方法 (RST) 。
GetScope取得物件,Scope其中包含與要求相關聯的信賴憑證者 (RP) 的相關信息。 您必須覆寫這個方法。 如果 傳GetScope回 ,InvalidOperationException則會擲回
null
。根據 CreateSecurityTokenDescriptor RST 傳回安全性令牌描述元的方法,以及 Scope 上一個步驟中傳回的物件。 安全性令牌描述元 () SecurityTokenDescriptor 包含令牌處理程式可以使用之表單中要求的相關信息。 屬性 SecurityTokenService.SecurityTokenDescriptor 會設定為呼叫所傳回的描述元。 如果
null
傳回 或 描述 SigningCredentials 項目的 屬性為null
, InvalidOperationException 則會擲回 。 如果 Scope.TokenEncryptionRequired 屬性是true
,但 EncryptingCredentials 傳回描述元上的 屬性為null
,也會擲回例外狀況。根據 GetSecurityTokenHandler 要求的令牌種類取得適當令牌處理程式的方法。 如果
null
傳回 , NotImplementedException 則會擲回 。取得 GetIssuerName 令牌簽發者名稱的方法。 InvalidOperationException如果名稱為
null
或空白,則會擲回 ,否則會在TokenIssuerName描述項上設定 屬性。GetTokenLifetime取得令牌存留期的方法,並在描述項上設定 Lifetime 屬性。
GetProofToken取得要包含在所發行令牌中之證明令牌的方法,並在描述項上設定 Proof 屬性。
GetOutputClaimsIdentity取得要包含在所發行令牌中之宣告的方法,並在描述項上設定 Subject 屬性。 您必須覆寫這個方法。
GetResponse建立包含已發行令牌之 RSTR (回應的方法) 。
您可以覆寫 Issue 方法以實作自定義令牌發行管線;不過,在開發與測試環境中,通常不需要此管線,而類別的大部分自定義實作 SecurityTokenService 都是想要的。 在許多情況下,您會覆寫 GetOutputClaimsIdentity 和 GetScope 方法,並選擇性地覆寫 ValidateRequest 方法,為您的環境提供可服務的 STS。 如果需要進一步自定義,您可以覆寫實作上述預設令牌發行管線每個階段的方法,以提供它。