示例#1
0
        public void SecurityForSoapWithHeaderElement()
        {
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(
                @"<S:Envelope
xmlns:P=""http://egov.gv.at/pvp1.xsd""
xmlns:S=""http://schemas.xmlsoap.org/soap/envelope/""
xmlns:wsa=""http://schemas.xmlsoap.org/ws/2002/03/addressing""
xmlns:wsse=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"">
<S:Header>
<wsse:Security>
</wsse:Security>
</S:Header>
<S:Body>
</S:Body>
</S:Envelope>");

            SoapFilter filter          = new SoapFilter(null, 1000, PvpTokenHandling.remove, null);
            XmlElement securityElement = filter.SelectOrCreateSecurityElement(doc.DocumentElement);

            Assert.IsNotNull(securityElement, "Security");
            Assert.AreEqual("Security", securityElement.LocalName);
            Assert.AreEqual("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityElement.NamespaceURI);
            Assert.AreSame(securityElement.OwnerDocument, doc);

            XmlElement security =
                (XmlElement)doc.GetElementsByTagName("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd")[0];

            Assert.AreSame(security, securityElement);
        }