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, содержащий выданный токен безопасности.
Комментарии
Этот метод реализует привязку Issue, определенную в спецификации WS-Trust. Реализация Issue метода по умолчанию обрабатывает входящий запрос (RST) с помощью конвейера выдачи маркеров (выдачи утверждений) и возвращает ответ (RSTR), содержащий маркер безопасности с соответствующими утверждениями для проверки подлинности инициатора запроса с помощью поставщика запросов или соответствующего исключения. Конвейер выдачи маркеров в реализации по умолчанию состоит из вызовов следующих методов ( SecurityTokenService класса).
Метод ValidateRequest для проверки запроса (RST).
Метод GetScope для получения Scope объекта, содержащего сведения о проверяющей стороне (RP), связанной с запросом. Этот метод необходимо переопределить. Если GetScope возвращается
null
, InvalidOperationException создается исключение.Метод CreateSecurityTokenDescriptor , возвращающий дескриптор маркера безопасности на основе RST и объекта, Scope возвращенного на предыдущем шаге. Дескриптор маркера безопасности (SecurityTokenDescriptor) содержит сведения о запросе в форме, которую может использовать обработчик маркеров. Для SecurityTokenService.SecurityTokenDescriptor свойства задается дескриптор, возвращаемый вызовом. Если
null
возвращается или SigningCredentials имеетсяnull
свойство дескриптора, InvalidOperationException возникает исключение. Исключение также возникает, если свойство являетсяtrue
, но EncryptingCredentials свойство возвращаемого дескриптора равноnull
.Scope.TokenEncryptionRequiredМетод GetSecurityTokenHandler для получения соответствующего обработчика маркеров на основе типа запрошенного токена. Если
null
возвращается, NotImplementedException создается исключение.Метод GetIssuerName для получения имени издателя для маркера. Создает исключение, InvalidOperationException если имя или
null
пустое; в противном случае задает TokenIssuerName свойство дескриптора.Метод GetTokenLifetime для получения времени существования маркера и задает Lifetime свойство дескриптора.
Метод GetProofToken для получения маркера проверки для включения в выданный маркер и задает Proof свойство дескриптора.
Метод GetOutputClaimsIdentity для получения утверждений для включения в выданный токен и задает Subject свойство дескриптора. Этот метод необходимо переопределить.
Метод GetResponse для создания ответа (RSTR), содержащего выданный маркер.
Можно переопределить Issue метод для реализации конвейера выдачи пользовательских маркеров. Однако обычно это необязательно в средах разработки и тестирования, для которых предназначены большинство пользовательских реализаций SecurityTokenService класса. Во многих из этих случаев вы переопределяете методы и GetScope при необходимости переопределяете GetOutputClaimsIdentity ValidateRequest метод для предоставления обслуживаемой службы STS для вашей среды. Если требуется дополнительная настройка, ее часто можно предоставить, переопределив методы, реализующие каждый этап конвейера выдачи маркеров по умолчанию, перечисленных выше.