Пример #1
0
        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);
        }