protected virtual Message CreateIssueRequest(EndpointAddress target, out object requestState) { this.CommunicationObject.ThrowIfClosedOrNotOpen(); RequestSecurityToken rst = CreateRst(target, out requestState); rst.RequestType = this.StandardsManager.TrustDriver.RequestTypeIssue; rst.MakeReadOnly(); Message result = Message.CreateMessage(this.MessageVersion, ActionHeader.Create(this.IssueAction, this.MessageVersion.Addressing), rst); PrepareRequest(result); return(result); }
public void GetOutgoingBlob(ChannelBinding channelBinding) { byte[] outgoingBlob = _sspiState.SspiNegotiation.GetOutgoingBlob(null, channelBinding, null); if (outgoingBlob == null && _sspiState.SspiNegotiation.IsCompleted == false) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityNegotiationException(SR.GetString(SR.NoBinaryNegoToSend))); } _rst.SetBinaryNegotiation(new BinaryNegotiation(_sspiProvider.NegotiationValueType, outgoingBlob)); SspiNegotiationTokenProvider.AddToDigest(_sspiState, _rst); _rst.MakeReadOnly(); }
protected virtual Message CreateRenewRequest(EndpointAddress target, SecurityToken currentSessionToken, out object requestState) { this.CommunicationObject.ThrowIfClosedOrNotOpen(); RequestSecurityToken rst = CreateRst(target, out requestState); rst.RequestType = this.StandardsManager.TrustDriver.RequestTypeRenew; rst.RenewTarget = this.IssuedSecurityTokenParameters.CreateKeyIdentifierClause(currentSessionToken, SecurityTokenReferenceStyle.External); rst.MakeReadOnly(); Message result = Message.CreateMessage(this.MessageVersion, ActionHeader.Create(this.RenewAction, this.MessageVersion.Addressing), rst); SecurityMessageProperty supportingTokenProperty = new SecurityMessageProperty(); supportingTokenProperty.OutgoingSupportingTokens.Add(new SupportingTokenSpecification(currentSessionToken, EmptyReadOnlyCollection <IAuthorizationPolicy> .Instance, SecurityTokenAttachmentMode.Endorsing, this.IssuedSecurityTokenParameters)); result.Properties.Security = supportingTokenProperty; PrepareRequest(result); return(result); }
protected override BodyWriter GetFirstOutgoingMessageBody(AcceleratedTokenProviderState negotiationState, out MessageProperties messageProperties) { messageProperties = null; RequestSecurityToken rst = new RequestSecurityToken(StandardsManager); rst.Context = negotiationState.Context; rst.KeySize = SecurityAlgorithmSuite.DefaultSymmetricKeyLength; rst.TokenType = SecurityContextTokenUri; byte[] requestorEntropy = negotiationState.GetRequestorEntropy(); if (requestorEntropy != null) { rst.SetRequestorEntropy(requestorEntropy); } rst.MakeReadOnly(); return(rst); }
protected virtual Message CreateRenewRequest(EndpointAddress target, SecurityToken currentSessionToken, out object requestState) { base.CommunicationObject.ThrowIfClosedOrNotOpen(); RequestSecurityToken body = this.CreateRst(target, out requestState); body.RequestType = this.StandardsManager.TrustDriver.RequestTypeRenew; body.RenewTarget = this.IssuedSecurityTokenParameters.CreateKeyIdentifierClause(currentSessionToken, SecurityTokenReferenceStyle.External); body.MakeReadOnly(); Message message = Message.CreateMessage(this.MessageVersion, ActionHeader.Create(this.RenewAction, this.MessageVersion.Addressing), body); SecurityMessageProperty property = new SecurityMessageProperty { OutgoingSupportingTokens = { new SupportingTokenSpecification(currentSessionToken, System.ServiceModel.Security.EmptyReadOnlyCollection <IAuthorizationPolicy> .Instance, SecurityTokenAttachmentMode.Endorsing, this.IssuedSecurityTokenParameters) } }; message.Properties.Security = property; this.PrepareRequest(message); return(message); }