SecurityToken GetInitiatorToken(SecurityToken providerToken, Message message, TimeSpan timeout, out SecurityTokenParameters tokenParameters, out SecurityToken prerequisiteWrappingToken) { tokenParameters = null; prerequisiteWrappingToken = null; SecurityToken token; if (this.Factory.SecurityTokenParameters.HasAsymmetricKey) { SecurityToken asymmetricToken = providerToken; // non-Indigo server implementations might require the wrapping token to be included in the message bool isAsymmetricTokenInMessage = SendSecurityHeader.ShouldSerializeToken(this.Factory.SecurityTokenParameters, MessageDirection.Input); if (isAsymmetricTokenInMessage) { prerequisiteWrappingToken = asymmetricToken; } token = CreateWrappedKeyToken(asymmetricToken, this.Factory.SecurityTokenParameters, (isAsymmetricTokenInMessage) ? SecurityTokenReferenceStyle.Internal : SecurityTokenReferenceStyle.External); } else { token = providerToken; } tokenParameters = this.Factory.GetProtectionTokenParameters(); return(token); }
private SecurityToken GetInitiatorToken(SecurityToken providerToken, Message message, TimeSpan timeout, out SecurityTokenParameters tokenParameters, out SecurityToken prerequisiteWrappingToken) { SecurityToken token; tokenParameters = null; prerequisiteWrappingToken = null; if (this.Factory.SecurityTokenParameters.HasAsymmetricKey) { SecurityToken wrappingToken = providerToken; bool flag = SendSecurityHeader.ShouldSerializeToken(this.Factory.SecurityTokenParameters, MessageDirection.Input); if (flag) { prerequisiteWrappingToken = wrappingToken; } token = this.CreateWrappedKeyToken(wrappingToken, this.Factory.SecurityTokenParameters, flag ? SecurityTokenReferenceStyle.Internal : SecurityTokenReferenceStyle.External); } else { token = providerToken; } tokenParameters = this.Factory.GetProtectionTokenParameters(); return(token); }