@@ -34,9 +34,13 @@ static XmlClient()
34
34
XmlReaderSettings settings = new XmlReaderSettings ( ) ;
35
35
settings . DtdProcessing = DtdProcessing . Prohibit ;
36
36
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 ) ;
38
39
39
40
mSoapEnvelope . Load ( reader ) ;
41
+
42
+ stringReader . Close ( ) ;
43
+ reader . Close ( ) ;
40
44
}
41
45
42
46
private XmlClient ( ) { }
@@ -332,7 +336,8 @@ private static void SignDocument(X509Certificate2 cert, XmlDocument doc)
332
336
XmlReaderSettings settings = new XmlReaderSettings ( ) ;
333
337
settings . DtdProcessing = DtdProcessing . Prohibit ;
334
338
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 ) ;
336
341
337
342
//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>");
338
343
keyInfo . Load ( reader ) ;
@@ -341,7 +346,8 @@ private static void SignDocument(X509Certificate2 cert, XmlDocument doc)
341
346
//Add The Base64 representation of the X509 cert to BinarySecurityToken Node
342
347
//X509SecurityToken token = new X509SecurityToken(cert);
343
348
doc . DocumentElement . FirstChild . LastChild . InnerText = Convert . ToBase64String ( cert . Export ( X509ContentType . Cert ) , Base64FormattingOptions . None ) ;
344
-
349
+ stringReader . Close ( ) ;
350
+ reader . Close ( ) ;
345
351
}
346
352
347
353
private static void encryptDocument ( X509Certificate2 cert , XmlDocument doc )
@@ -359,7 +365,8 @@ private static void encryptDocument(X509Certificate2 cert, XmlDocument doc)
359
365
XmlReaderSettings settings = new XmlReaderSettings ( ) ;
360
366
settings . DtdProcessing = DtdProcessing . Prohibit ;
361
367
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 ) ;
363
370
364
371
encryptedDataTags . Load ( reader ) ;
365
372
doc . DocumentElement . FirstChild . FirstChild . PrependChild ( doc . ImportNode ( encryptedDataTags . FirstChild . FirstChild , true ) ) ;
@@ -392,6 +399,8 @@ private static void encryptDocument(X509Certificate2 cert, XmlDocument doc)
392
399
// Put encypted body inside ciphervalue tag
393
400
doc . GetElementsByTagName ( "SOAP-ENV:Body" ) [ 0 ] . InnerXml = encryptedSoapBody ;
394
401
doc . GetElementsByTagName ( "xenc:CipherValue" ) [ 1 ] . InnerText = encryptedPayload ;
402
+ stringReader . Close ( ) ;
403
+ reader . Close ( ) ;
395
404
}
396
405
397
406
/// <summary>
@@ -492,6 +501,7 @@ private static XmlDocument ReadXml(WebResponse webResponse)
492
501
settings . XmlResolver = null ;
493
502
XmlReader reader = XmlReader . Create ( stream , settings ) ;
494
503
xmlDoc . Load ( reader ) ;
504
+ reader . Close ( ) ;
495
505
return ( xmlDoc ) ;
496
506
}
497
507
finally
0 commit comments