Exemple #1
0
        //public static EndpointAddress ReadFrom(XmlDictionaryReader reader, XmlDictionaryString localName, XmlDictionaryString ns)
        //{
        //    AddressingVersion version;
        //    return ReadFrom(reader, localName, ns, out version);
        //}

        internal static EndpointAddress ReadFrom(XmlDictionaryReader reader, XmlDictionaryString localName, XmlDictionaryString ns, out AddressingVersion version)
        {
            if (reader == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(reader));
            }

            reader.ReadFullStartElement(localName, ns);
            reader.MoveToContent();

            if (reader.IsNamespaceUri(AddressingVersion.WSAddressing10.DictionaryNamespace))
            {
                version = AddressingVersion.WSAddressing10;
            }
            //else if (reader.IsNamespaceUri(AddressingVersion.WSAddressingAugust2004.DictionaryNamespace))
            //{
            //    version = AddressingVersion.WSAddressingAugust2004;
            //}
            else if (reader.NodeType != XmlNodeType.Element)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(
                          "reader", SR.CannotDetectAddressingVersion);
            }
            else
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(
                          "reader", SR.Format(SR.AddressingVersionNotSupported, reader.NamespaceURI));
            }

            EndpointAddress ea = ReadFromDriver(version, reader);

            reader.ReadEndElement();
            return(ea);
        }
Exemple #2
0
 EndpointAddress(AddressingVersion version, Uri uri, EndpointIdentity identity, AddressHeaderCollection headers, XmlBuffer buffer, int metadataSection, int extensionSection, int pspSection)
 {
     Init(version, uri, identity, headers, buffer, metadataSection, extensionSection, pspSection);
 }
Exemple #3
0
        public void WriteContentsTo(AddressingVersion addressingVersion, XmlWriter writer)
        {
            XmlDictionaryWriter dictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer);

            WriteContentsTo(addressingVersion, dictionaryWriter);
        }
Exemple #4
0
 public void WriteTo(AddressingVersion addressingVersion, XmlDictionaryWriter writer)
 {
     WriteTo(addressingVersion, writer, XD.AddressingDictionary.EndpointReference,
             addressingVersion.DictionaryNamespace);
 }
        internal static void AddAddressToWsdlPort(Port wsdlPort, EndpointAddress addr, AddressingVersion addressing)
        {
            if (addressing == AddressingVersion.None)
            {
                return;
            }
            MemoryStream memoryStream = new MemoryStream();
            XmlWriter    xmlWriter    = XmlWriter.Create(memoryStream);

            xmlWriter.WriteStartElement("temp");
            if (addressing != AddressingVersion.WSAddressing10)
            {
                if (addressing != AddressingVersion.WSAddressingAugust2004)
                {
                    throw Microsoft.ServiceBus.Messaging.FxTrace.Exception.AsError(new InvalidOperationException(string.Concat("This addressing version is not supported: ", addressing.ToString())), null);
                }
                xmlWriter.WriteAttributeString("xmlns", "wsa", null, "http://schemas.xmlsoap.org/ws/2004/08/addressing");
            }
            else
            {
                xmlWriter.WriteAttributeString("xmlns", "wsa10", null, "http://www.w3.org/2005/08/addressing");
            }
            addr.WriteTo(addressing, xmlWriter);
            xmlWriter.WriteEndElement();
            xmlWriter.Flush();
            memoryStream.Seek((long)0, SeekOrigin.Begin);
            XmlReader xmlReader = XmlReader.Create(memoryStream);

            xmlReader.MoveToContent();
            XmlElement itemOf = (XmlElement)WSAddressingHelper.XmlDoc.ReadNode(xmlReader).ChildNodes[0];

            wsdlPort.Extensions.Add(itemOf);
        }
Exemple #6
0
        private static void AddAddressToWsdlPort(WsdlNS.Port wsdlPort, EndpointAddress endpointAddress, AddressingVersion addressing)
        {
            if (addressing == AddressingVersion.None)
            {
                return;
            }

            MemoryStream memoryStream = new MemoryStream();
            XmlWriter    xmlWriter    = XmlWriter.Create(memoryStream);

            xmlWriter.WriteStartElement("temp");

            if (addressing == AddressingVersion.WSAddressing10)
            {
                xmlWriter.WriteAttributeString("xmlns", "wsa10", null, AddressingVersionConstants.WSAddressing10NameSpace);
            }
            else if (addressing == AddressingVersion.WSAddressingAugust2004)
            {
                xmlWriter.WriteAttributeString("xmlns", "wsa", null, AddressingVersionConstants.WSAddressingAugust2004NameSpace);
            }
            else
            {
                throw new InvalidOperationException("This addressing version is not supported:\n" + addressing.ToString());
            }

            endpointAddress.WriteTo(addressing, xmlWriter);
            xmlWriter.WriteEndElement();

            xmlWriter.Flush();
            memoryStream.Seek(0, SeekOrigin.Begin);

            XmlReader xmlReader = XmlReader.Create(memoryStream);

            xmlReader.MoveToContent();



            XmlElement endpointReference = (XmlElement)XmlDoc.ReadNode(xmlReader).ChildNodes[0];

            wsdlPort.Extensions.Add(endpointReference);
        }
 private AddressingVersionExtension(AddressingVersion version)
 {
     _version = version;
 }
Exemple #8
0
 public void WriteTo(
     AddressingVersion addressingVersion, XmlWriter writer)
 {
     WriteTo(addressingVersion,
             XmlDictionaryWriter.CreateDictionaryWriter(writer));
 }
Exemple #9
0
 public static void MessageVersion_Verify_AddressingVersions_And_EnvelopeVersions(MessageVersion messageVersion, EnvelopeVersion envelopeVersion, AddressingVersion addressingVersion)
 {
     Assert.Equal <EnvelopeVersion>(envelopeVersion, messageVersion.Envelope);
     Assert.Equal <AddressingVersion>(addressingVersion, messageVersion.Addressing);
 }
 public static void Activate(AddressingVersion version)
 {
     OperationContextProxy.Current.AddExtension(new AddressingVersionExtension(version));
 }
 public MessageInspector(AddressingVersion version)
 {
     _version = version;
 }
 public MetadataReference(EndpointAddress address, AddressingVersion addressVersion)
 {
     this.address        = address;
     this.addressVersion = addressVersion;
 }
        internal static void AddWSAddressingAssertion(MetadataExporter exporter, PolicyConversionContext context, AddressingVersion addressVersion)
        {
            XmlElement xmlElement;
            string     str;

            if (addressVersion == AddressingVersion.WSAddressingAugust2004)
            {
                xmlElement = WSAddressingHelper.XmlDoc.CreateElement("wsap", "UsingAddressing", "http://schemas.xmlsoap.org/ws/2004/08/addressing/policy");
            }
            else if (addressVersion != AddressingVersion.WSAddressing10)
            {
                if (addressVersion != AddressingVersion.None)
                {
                    throw Microsoft.ServiceBus.Messaging.FxTrace.Exception.AsError(new InvalidOperationException(string.Concat("This addressing version is not supported: ", addressVersion.ToString())), null);
                }
                xmlElement = null;
            }
            else if (exporter.PolicyVersion != PolicyVersion.Policy12)
            {
                xmlElement = WSAddressingHelper.XmlDoc.CreateElement("wsam", "Addressing", "http://www.w3.org/2007/05/addressing/metadata");
                SupportedAddressingMode item = SupportedAddressingMode.Anonymous;
                string name = typeof(SupportedAddressingMode).Name;
                if (exporter.State.ContainsKey(name) && exporter.State[name] as SupportedAddressingMode != SupportedAddressingMode.Anonymous)
                {
                    item = (SupportedAddressingMode)exporter.State[name];
                }
                if (item != SupportedAddressingMode.Mixed)
                {
                    str = (item != SupportedAddressingMode.Anonymous ? "NonAnonymousResponses" : "AnonymousResponses");
                    XmlElement xmlElement1 = WSAddressingHelper.XmlDoc.CreateElement("wsp", "Policy", "http://www.w3.org/ns/ws-policy");
                    XmlElement xmlElement2 = WSAddressingHelper.XmlDoc.CreateElement("wsam", str, "http://www.w3.org/2007/05/addressing/metadata");
                    xmlElement1.AppendChild(xmlElement2);
                    xmlElement.AppendChild(xmlElement1);
                }
            }
            else
            {
                xmlElement = WSAddressingHelper.XmlDoc.CreateElement("wsaw", "UsingAddressing", "http://www.w3.org/2006/05/addressing/wsdl");
            }
            if (xmlElement != null)
            {
                context.GetBindingAssertions().Add(xmlElement);
            }
        }
Exemple #14
0
 public static EndpointAddress ReadFrom(
     AddressingVersion addressingVersion,
     XmlDictionaryReader reader)
 {
     return(ReadFrom(addressingVersion, (XmlReader)reader));
 }
        public override Collection <XmlElement> CreateWsspSupportingTokensAssertion(MetadataExporter exporter, Collection <SecurityTokenParameters> signed, Collection <SecurityTokenParameters> signedEncrypted, Collection <SecurityTokenParameters> endorsing, Collection <SecurityTokenParameters> signedEndorsing, Collection <SecurityTokenParameters> optionalSigned, Collection <SecurityTokenParameters> optionalSignedEncrypted, Collection <SecurityTokenParameters> optionalEndorsing, Collection <SecurityTokenParameters> optionalSignedEndorsing, AddressingVersion addressingVersion)
        {
            Collection <XmlElement> supportingTokenAssertions = new Collection <XmlElement>();

            // Signed Supporting Tokens
            XmlElement supportingTokenAssertion = CreateWsspSignedSupportingTokensAssertion(exporter, signed, optionalSigned);

            if (supportingTokenAssertion != null)
            {
                supportingTokenAssertions.Add(supportingTokenAssertion);
            }

            // Signed Encrypted Supporting Tokens
            supportingTokenAssertion = CreateWsspSignedEncryptedSupportingTokensAssertion(exporter, signedEncrypted, optionalSignedEncrypted);
            if (supportingTokenAssertion != null)
            {
                supportingTokenAssertions.Add(supportingTokenAssertion);
            }

            // Endorsing Supporting Tokens.
            supportingTokenAssertion = CreateWsspEndorsingSupportingTokensAssertion(exporter, endorsing, optionalEndorsing, addressingVersion);
            if (supportingTokenAssertion != null)
            {
                supportingTokenAssertions.Add(supportingTokenAssertion);
            }

            // Signed Endorsing Supporting Tokens.
            supportingTokenAssertion = CreateWsspSignedEndorsingSupportingTokensAssertion(exporter, signedEndorsing, optionalSignedEndorsing, addressingVersion);
            if (supportingTokenAssertion != null)
            {
                supportingTokenAssertions.Add(supportingTokenAssertion);
            }

            return(supportingTokenAssertions);
        }
Exemple #16
0
 public void WriteTo(
     AddressingVersion addressingVersion,
     XmlDictionaryWriter writer)
 {
     WriteTo(addressingVersion, writer, "EndpointReference", addressingVersion.Namespace);
 }
Exemple #17
0
        public void WriteContentsTo(
            AddressingVersion addressingVersion,
            XmlDictionaryWriter writer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }
#if MOBILE
            if (addressingVersion == AddressingVersion.None)
            {
                writer.WriteString(Uri.AbsoluteUri);
            }
            else
            {
                writer.WriteStartElement("Address", addressingVersion.Namespace);
                writer.WriteString(Uri.AbsoluteUri);
                writer.WriteEndElement();
            }
#else
            if (addressingVersion == AddressingVersion.None)
            {
                writer.WriteString(Uri.AbsoluteUri);
            }
            else
            {
                writer.WriteStartElement("Address", addressingVersion.Namespace);
                writer.WriteString(Uri.AbsoluteUri);
                writer.WriteEndElement();

                if (Identity == null)
                {
                    return;
                }

                if (Headers != null)
                {
                    foreach (AddressHeader ah in Headers)
                    {
                        ah.WriteAddressHeader(writer);
                    }
                }

                writer.WriteStartElement("Identity", Constants.WsaIdentityUri);

                X509CertificateEndpointIdentity x509 =
                    Identity as X509CertificateEndpointIdentity;
                if (x509 != null)
                {
                    KeyInfo         ki = new KeyInfo();
                    KeyInfoX509Data x  = new KeyInfoX509Data();
                    foreach (X509Certificate2 cert in x509.Certificates)
                    {
                        x.AddCertificate(cert);
                    }
                    ki.AddClause(x);
                    ki.GetXml().WriteTo(writer);
                }
                else
                {
                    DataContractSerializer ds = new DataContractSerializer(Identity.IdentityClaim.GetType());
                    ds.WriteObject(writer, Identity.IdentityClaim);
                }
                writer.WriteEndElement();
            }
#endif
        }
 private string GetDefaultFaultAction(AddressingVersion addressing)
 {
     return((string)s_defaultFaultAction.GetValue(addressing));
 }
Exemple #19
0
    static void Main(string[] args)
    {
        // <Snippet0>
        MessageVersion msgVersion = MessageVersion.Default;
        // </Snippet0>


        // <Snippet1>
        AddressingVersion addrVersion = msgVersion.Addressing;
        // </Snippet1>

        // <Snippet2>
        EnvelopeVersion envVersion = msgVersion.Envelope;

        // </Snippet2>

        // <Snippet3>
        msgVersion.ToString();
        // </Snippet3>

        // <Snippet4>
        MessageVersion msgVersion2 = MessageVersion.None;

        // </Snippet4>

        // <Snippet5>
        msgVersion = MessageVersion.Soap11;
        // </Snippet5>

        // <Snippet6>
        msgVersion = MessageVersion.Soap11WSAddressing10;
        // </Snippet6>

        // <Snippet7>
        msgVersion = MessageVersion.Soap11WSAddressingAugust2004;
        // </Snippet7>

        // <Snippet8>
        msgVersion = MessageVersion.Soap12;
        // </Snippet8>

        // <Snippet9>
        msgVersion = MessageVersion.Soap12WSAddressing10;
        // </Snippet9>

        // <Snippet10>
        msgVersion = MessageVersion.Soap12WSAddressingAugust2004;
        // </Snippet10>

        // <Snippet11>
        msgVersion = MessageVersion.CreateVersion(envVersion);
        // </Snippet11>

        // <Snippet12>
        msgVersion = MessageVersion.CreateVersion(envVersion, addrVersion);
        // </Snippet12>

        // <Snippet13>
        msgVersion.Equals(msgVersion2);
        // </Snippet13>

        // <Snippet14>
        msgVersion.GetHashCode();
        // </Snippet14>
    }