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
A ClaimsPrincipal 代表標記請求者的身份。
- request
- RequestSecurityToken
A RequestSecurityToken 代表安全令牌請求。 這包括請求訊息以及其他與客戶端相關的資訊,例如授權上下文。
傳回
RequestSecurityTokenResponse A 包含已發行的證券令牌。
備註
此方法實作了 WS-Trust 規範中定義的議題綁定。 該 Issue 方法的預設實作會透過令牌發行(claims isunance)管線處理進來請求(RST),並回傳包含安全權杖及適當權利要求以驗證請求者與 RP 的回應(RSTR),或適當的例外。 預設實作中的憑證發行管線由以下類別方法 SecurityTokenService 的呼叫組成。
ValidateRequest驗證請求的方法(RST)。
取得GetScopeScope包含與請求相關聯的依賴方(RP)資訊的物件的方法。 你必須覆蓋這個方法。 若 GetScope 返回
null,則拋出 a InvalidOperationException 。根據 CreateSecurityTokenDescriptor RST 與 Scope 前一步回傳的物件,回傳安全令牌描述符的方法。 安全權杖描述符(SecurityTokenDescriptor)以一種可由權杖處理者使用的請求資訊形式呈現。 屬性 SecurityTokenService.SecurityTokenDescriptor 設定為呼叫回傳的描述符。 若
null返回 或描述 SigningCredentials 子的性質為null,則拋出 an InvalidOperationException 。 若 Scope.TokenEncryptionRequired 屬性為,true但 EncryptingCredentials 回傳描述符上的屬性為null,則該例外也會被拋出。根據 GetSecurityTokenHandler 所請求的標記類型,取得適當的標記處理器的方法。 若
null返回,則擲出 a NotImplementedException 。取得 GetIssuerName 代幣發行者名稱的方法。 若名稱為
null空,則拋出 ;InvalidOperationException否則將描述符上的屬性置TokenIssuerName於該物件。GetTokenLifetime取得標記壽命的方法,以及描述符上的屬性Lifetime設定。
GetProofToken取得證明標記包含在已發行標記中的方法,並設定Proof描述符上的屬性。
GetOutputClaimsIdentity方法是將權利要求包含在已發行的代幣中,並在描述符上設定Subject屬性。 你必須覆蓋這個方法。
建立 GetResponse 包含已發行代幣的回應(RSTR)的方法。
你可以覆寫 Issue 此方法來實作自訂的代幣發行管線;但在大多數自訂實作 SecurityTokenService 所針對的開發與測試環境中,這通常不是必要的。 在許多情況下,你會覆寫 GetOutputClaimsIdentity AND GetScope 方法,並可選擇覆寫該 ValidateRequest 方法,以提供適合環境的可用 STS。 若需要進一步客製化,通常可透過覆寫上述預設代幣發行流程各階段的方法來實現。