@@ -34,9 +34,13 @@ static XmlClient()
3434 XmlReaderSettings settings = new XmlReaderSettings ( ) ;
3535 settings . DtdProcessing = DtdProcessing . Prohibit ;
3636 settings . XmlResolver = null ;
37- XmlReader reader = XmlReader . Create ( new StringReader ( SOAP_ENVELOPE ) , settings ) ;
37+ StringReader stringReader = new StringReader ( SOAP_ENVELOPE ) ;
38+ XmlReader reader = XmlReader . Create ( stringReader , settings ) ;
3839
3940 mSoapEnvelope . Load ( reader ) ;
41+
42+ stringReader . Close ( ) ;
43+ reader . Close ( ) ;
4044 }
4145
4246 private XmlClient ( ) { }
@@ -332,7 +336,8 @@ private static void SignDocument(X509Certificate2 cert, XmlDocument doc)
332336 XmlReaderSettings settings = new XmlReaderSettings ( ) ;
333337 settings . DtdProcessing = DtdProcessing . Prohibit ;
334338 settings . XmlResolver = null ;
335- XmlReader reader = XmlReader . Create ( new StringReader ( keyInfoTags ) , settings ) ;
339+ StringReader stringReader = new StringReader ( keyInfoTags ) ;
340+ XmlReader reader = XmlReader . Create ( stringReader , settings ) ;
336341
337342 //keyInfo.LoadXml("<root xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" ><ds:KeyInfo><SecurityTokenReference xmlns=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"><wsse:Reference URI=\"#X509Token\" ValueType=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3\"/></SecurityTokenReference></ds:KeyInfo></root>");
338343 keyInfo . Load ( reader ) ;
@@ -341,7 +346,8 @@ private static void SignDocument(X509Certificate2 cert, XmlDocument doc)
341346 //Add The Base64 representation of the X509 cert to BinarySecurityToken Node
342347 //X509SecurityToken token = new X509SecurityToken(cert);
343348 doc . DocumentElement . FirstChild . LastChild . InnerText = Convert . ToBase64String ( cert . Export ( X509ContentType . Cert ) , Base64FormattingOptions . None ) ;
344-
349+ stringReader . Close ( ) ;
350+ reader . Close ( ) ;
345351 }
346352
347353 private static void encryptDocument ( X509Certificate2 cert , XmlDocument doc )
@@ -359,7 +365,8 @@ private static void encryptDocument(X509Certificate2 cert, XmlDocument doc)
359365 XmlReaderSettings settings = new XmlReaderSettings ( ) ;
360366 settings . DtdProcessing = DtdProcessing . Prohibit ;
361367 settings . XmlResolver = null ;
362- XmlReader reader = XmlReader . Create ( new StringReader ( encData ) , settings ) ;
368+ StringReader stringReader = new StringReader ( encData ) ;
369+ XmlReader reader = XmlReader . Create ( stringReader , settings ) ;
363370
364371 encryptedDataTags . Load ( reader ) ;
365372 doc . DocumentElement . FirstChild . FirstChild . PrependChild ( doc . ImportNode ( encryptedDataTags . FirstChild . FirstChild , true ) ) ;
@@ -392,6 +399,8 @@ private static void encryptDocument(X509Certificate2 cert, XmlDocument doc)
392399 // Put encypted body inside ciphervalue tag
393400 doc . GetElementsByTagName ( "SOAP-ENV:Body" ) [ 0 ] . InnerXml = encryptedSoapBody ;
394401 doc . GetElementsByTagName ( "xenc:CipherValue" ) [ 1 ] . InnerText = encryptedPayload ;
402+ stringReader . Close ( ) ;
403+ reader . Close ( ) ;
395404 }
396405
397406 /// <summary>
@@ -492,6 +501,7 @@ private static XmlDocument ReadXml(WebResponse webResponse)
492501 settings . XmlResolver = null ;
493502 XmlReader reader = XmlReader . Create ( stream , settings ) ;
494503 xmlDoc . Load ( reader ) ;
504+ reader . Close ( ) ;
495505 return ( xmlDoc ) ;
496506 }
497507 finally
0 commit comments