<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Gaurav's Monologue</title>
	<atom:link href="http://intrepiddeveloper.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://intrepiddeveloper.wordpress.com</link>
	<description>on Software Architecture, .NET Framework and Connected System Technology</description>
	<lastBuildDate>Thu, 14 Apr 2011 11:28:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='intrepiddeveloper.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Gaurav's Monologue</title>
		<link>http://intrepiddeveloper.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://intrepiddeveloper.wordpress.com/osd.xml" title="Gaurav&#039;s Monologue" />
	<atom:link rel='hub' href='http://intrepiddeveloper.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Web Services Test Automation</title>
		<link>http://intrepiddeveloper.wordpress.com/2008/11/28/web-services-test-automation/</link>
		<comments>http://intrepiddeveloper.wordpress.com/2008/11/28/web-services-test-automation/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 15:49:07 +0000</pubDate>
		<dc:creator>intrepiddeveloper</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://intrepiddeveloper.wordpress.com/?p=99</guid>
		<description><![CDATA[Generate the Service Proxy and Configuration from the exposed WSDL of the service being tested. The simplest option is to use SvcUtil and drop the proxy and config in your test projects solution folder. svcutil.exe /t:code https://MyWebService.com/Service.svc / out:C:\[project path ]\Proxy.cs /config:C:\ [project path ]\App.config I run a simple scripted bat file to do this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=99&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Generate the Service Proxy and Configuration from the exposed WSDL of the service being tested. The simplest option is to use SvcUtil and drop the proxy and config in your test projects solution folder.</p>
<p>svcutil.exe /<em>t:code <a href="https://mywebservice.com/Service.svc%20/">https://MyWebService.com/Service.svc /</a> out:C:\[project path ]\Proxy.cs /config:C:\ [project path ]\App.config</em></p>
<p style="text-align:justify;">I run a simple scripted bat file to do this task. The other option is to automate this step with a build task so when you compile your solution the build will generate and drop the Proxy and Configuration at the right location.</p>
<p style="text-align:justify;">Now that you have a service proxy to code against, you can use testing frameworks like <strong>NUnit</strong> [<cite>www.nunit.org/] </cite>to write simple unit tests for each service operation or write more detailed scenario tests which make a series of service calls to accomplish a functional business scenario.</p>
<p style="text-align:justify;"><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--></p>
<p>This is a sample shell class for hosting the tests as below.</p>
<pre class="brush: csharp;">
public class TestWebServices {
    public TestWebServicesClient ClientProxy { get; set; }
    public ChannelFactory&lt;itestwebservices&gt; factory { get; set; }
    public ITestWebServices Proxy { get; set; }

[SetUp]
public void TestSetUp()
{
     ServicePointManager.ServerCertificateValidationCallback +=
     new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertValidate);
}

/// &lt;summary&gt;
/// All Clean-up work goes here
/// &lt;/summary&gt;
[TearDown]
public void TestTearDown()
{

}

//This is to take care of SSL certification validation which are not issued by Trusted Root CA. Recommended for testing  only.
protected bool RemoteCertValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{
     //Cert Validation Logic
     return true;
}

[TestFixtureTearDown]
public void CloseChannel()
{
     factory.Close();
}
[TestFixture]
public class Agent : BaseTest
{
    [TestFixtureSetUp]
    public void Initialize()
    {
     try
       {
            factory = new ChannelFactory&lt;/itestwebservices&gt;&lt;itestwebservices&gt;(&quot;ConfigurationBinding&quot;);
            factory.Credentials.UserName.UserName = &quot;admin&quot;;
            factory.Credentials.UserName.Password = &quot;admin&quot;;
            factory.Credentials.ServiceCertificate.Authentication.RevocationMode = X509RevocationMode.NoCheck;
            Proxy = factory.CreateChannel();
        }
    catch (Exception ex)
    {
        Assert.Fail(string.Format(&quot;Test Setup threw an Exception: {0} &quot;, ex.Message));
    }
   }

    [Test()]
    public void TestNumber01();
    [Test()]
    public void TestNumber02();
    [Test()]
    public void TestScenarioNumber01();
  }

}</pre>
<p><span style="font-size:11pt;line-height:115%;font-family:&quot;">And finally you can run this test assembly in the stand alone NUnit console.</span></p>
<p><span style="font-size:11pt;line-height:115%;font-family:&quot;"><a href="http://intrepiddeveloper.files.wordpress.com/2008/12/unittestexample01.jpg"><img class="alignnone size-full wp-image-113" title="NUnitConsole" src="http://intrepiddeveloper.files.wordpress.com/2008/12/unittestexample01.jpg?w=630&#038;h=292" alt="NUnitConsole" width="630" height="292" /></a><br />
</span></p>
<p><span style="font-size:11pt;line-height:115%;font-family:&quot;"><br />
</span></itestwebservices></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intrepiddeveloper.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intrepiddeveloper.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/intrepiddeveloper.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/intrepiddeveloper.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/intrepiddeveloper.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/intrepiddeveloper.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/intrepiddeveloper.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/intrepiddeveloper.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/intrepiddeveloper.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/intrepiddeveloper.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/intrepiddeveloper.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/intrepiddeveloper.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/intrepiddeveloper.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/intrepiddeveloper.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=99&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intrepiddeveloper.wordpress.com/2008/11/28/web-services-test-automation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79604ee124314c21fa7e0de7a27acf3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">intrepiddeveloper</media:title>
		</media:content>

		<media:content url="http://intrepiddeveloper.files.wordpress.com/2008/12/unittestexample01.jpg" medium="image">
			<media:title type="html">NUnitConsole</media:title>
		</media:content>
	</item>
		<item>
		<title>AddressFilter Mismatch</title>
		<link>http://intrepiddeveloper.wordpress.com/2008/11/22/addressfilter-mismatch/</link>
		<comments>http://intrepiddeveloper.wordpress.com/2008/11/22/addressfilter-mismatch/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 22:48:25 +0000</pubDate>
		<dc:creator>intrepiddeveloper</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://intrepiddeveloper.wordpress.com/?p=87</guid>
		<description><![CDATA[Recently I came across an interesting issue relating to AddressFiltering in a WCF service. The service was hosted in IIS and exposed two endpoints i.e. Service.svc/endpoint1 and Service.svc/endpoint2. Since both endpoints exposed the same service interface with different bindings, each endpoint address had to be unique, however the opposite is not true i.e. Multiple endpoints [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=87&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I came across an interesting issue relating to AddressFiltering in a WCF service. The service was hosted in IIS and exposed two endpoints i.e. <span style="color:#3366ff;">Service.svc/endpoint1</span> and <span style="color:#3366ff;">Service.svc/endpoint2</span>. Since both endpoints exposed the same service interface with different bindings, each endpoint address had to be unique, however the opposite is not true i.e. Multiple endpoints with same binding exposing different service interface can use the same address.</p>
<p>The IIS server hosting the service sits behind a Firewall/SSL-off loader/Reverse Proxy network layer. So the client would send messages to <span style="color:#3366ff;">https://www.MyServiceHost.com/Service.svc/endpoint1</span> which would internally get striped-off the SSL and get routed to the IIS server as <span style="color:#3366ff;">http://IISHostServer/Service.svc/endpoint1</span>. At this point the servicehost would throw an error message along the lines of  “<em><strong>AddressFilter mismatch at the EndpointDispatche</strong></em>r”.</p>
<p>The dispatcher could not resolve which endpoint the messages should be forward to. AddressFilterMode is a service behavior option which controls how the endpoint filters addresses.</p>
<p>The AddressFilter options are:</p>
<ul>
<li> Exact: matches to the exact endpoint address.</li>
<li> Prefix:  matches the incoming “TO” address to endpoint address as long as it starts with same prefix address.</li>
<li> Any: matches all messages to the given endpoint.</li>
</ul>
<p>The simple fix was to decorate the service behavior with <strong>[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]</strong></p>
<p>There is a good article on MSDN Magzine that explains Message Addressing <a title="WCF Addressing" href="http://msdn.microsoft.com/en-us/magazine/cc163412.aspx" target="_blank">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intrepiddeveloper.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intrepiddeveloper.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/intrepiddeveloper.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/intrepiddeveloper.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/intrepiddeveloper.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/intrepiddeveloper.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/intrepiddeveloper.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/intrepiddeveloper.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/intrepiddeveloper.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/intrepiddeveloper.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/intrepiddeveloper.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/intrepiddeveloper.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/intrepiddeveloper.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/intrepiddeveloper.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=87&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intrepiddeveloper.wordpress.com/2008/11/22/addressfilter-mismatch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79604ee124314c21fa7e0de7a27acf3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">intrepiddeveloper</media:title>
		</media:content>
	</item>
		<item>
		<title>Message Authentication Failure : TimeStamp &amp; Clock Skew Issue (Part 2)</title>
		<link>http://intrepiddeveloper.wordpress.com/2008/08/25/message-authentication-failure-timestamp-clock-skew-issue-part-2/</link>
		<comments>http://intrepiddeveloper.wordpress.com/2008/08/25/message-authentication-failure-timestamp-clock-skew-issue-part-2/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 04:10:05 +0000</pubDate>
		<dc:creator>intrepiddeveloper</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://intrepiddeveloper.wordpress.com/?p=77</guid>
		<description><![CDATA[When using Message level security with UserName credential in some WCF bindings, you might get into a situation where you start getting Message Authentication Failure(See my earlier post for more details) . The reason for this is due to the fact that WCF frameworks implementation of WS-Security by default enables Message Replay Detection. Message replay [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=77&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When using  Message level security with UserName credential in some WCF bindings, you might get into a situation where you start getting Message Authentication Failure(See my earlier post for more details) .</p>
<p>The reason for this is due to the fact that WCF frameworks implementation of WS-Security by default enables Message Replay Detection. Message replay is an attack where a message is presented to a processor more than once in the hopes of fooling the processor into taking some action. One protection against message replay and other timing-based attacks is to have the sender timestamp messages. Security timestamps are only valid for a limited window of time, typically represented by a creation time and an expiration time. The processor may declare that messages have a limited lifetime, which can be checked by using the security timestamp.</p>
<p>The sender and receiver have to agree on what time means. Since the two sides don&#8217;t share a common clock, they need to each have a clock and those clocks need to agree on the current time to a certain precision. It&#8217;s impossible to make two clocks exactly agree and there&#8217;s some threshold after which you have to assume that the clocks are measuring two different times. The difference between the clocks is called the skew and the threshold is called the maximum allowed clock skew.<br />
When checking creation and expiration times, the maximum clock skew becomes a factor because it determines whether two times might be the same. Here are the interesting checks for a security timestamp.</p>
<ul>
<li>If the creation time is after the local time plus the maximum clock skew, then the creation date is actually in the future.</li>
<li>If the expiration time is before the local time minus the maximum clock skew, then the expiration date is actually in the past.</li>
<li>If the creation time is before the local time minus the maximum clock skew and minus the message lifetime, then the message is too old and may be part of a replay attack.</li>
</ul>
<p>This clock skew is a configurable setting on the SecurityBindingElement through the local client settings or local service settings. Changing that value changes the tolerance for comparing times. The default clock skew value is 00:05:00.</p>
<p>Keep in mind that this message timestamp value is checked both ways i.e. from the client to the Service(checked at the service side) <strong>AND</strong> from the Service to the client (check on the client side).</p>
<p>There are two solutions to this:</p>
<ol>
<li>Make sure both the server and client clocks are synced with a standard time server. This approach may not be applicable when you don&#8217;t have control over the server or the client machines.</li>
<li>Change the default values from the Service configuration by defining a custom binding. An example as as below.</li>
</ol>
<p><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE                           &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face 	{font-family:Consolas; 	panose-1:2 11 6 9 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:modern; 	mso-font-pitch:fixed; 	mso-font-signature:-1610611985 1073750091 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<pre class="brush: xml;">
&lt;binding name=&quot;CustomDevWSHttpBinding&quot;&gt;
  &lt;security authenticationMode=“UserNameOverTransport“ requireSecurityContextCancellation=“true“&gt;
    &lt;localservicesettings maxClockSkew=“00:10:00“ /&gt;
    &lt;localclientsettings maxClockSkew=“00:10:00“ /&gt;
    &lt;secureconversationbootstrap /&gt;
  &lt;/security&gt;
  &lt;textmessageencoding /&gt;
  &lt;httpstransport /&gt;
&lt;/binding&gt;
</pre>
<p>Note: For some reason, when I generate the client proxy&#8217;s configuration using SvcUtil, the clients ClockSkew value still default to 00:05:00 but you can manually change that to a suitable value.</p>
<p>Recently came to find out that the settings I mentioned above are going to be local to the service and the domain it operates in, hence the ClockSkew can be set on the service side to a suiable value or to turn it off set the <span style="font-size:10pt;font-family:Consolas;color:red;">maxClockSkew</span><span style="font-size:10pt;font-family:Consolas;color:blue;">=</span><span style="font-size:10pt;font-family:Consolas;color:red;">&#8220;<span style="color:blue;">Infinite</span>&#8220;</span>.However the generated Client configuration will always default to 5 mins and will have to be changed manually if required.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/intrepiddeveloper.wordpress.com/77/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/intrepiddeveloper.wordpress.com/77/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intrepiddeveloper.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intrepiddeveloper.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/intrepiddeveloper.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/intrepiddeveloper.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/intrepiddeveloper.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/intrepiddeveloper.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/intrepiddeveloper.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/intrepiddeveloper.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/intrepiddeveloper.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/intrepiddeveloper.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/intrepiddeveloper.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/intrepiddeveloper.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/intrepiddeveloper.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/intrepiddeveloper.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=77&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intrepiddeveloper.wordpress.com/2008/08/25/message-authentication-failure-timestamp-clock-skew-issue-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79604ee124314c21fa7e0de7a27acf3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">intrepiddeveloper</media:title>
		</media:content>
	</item>
		<item>
		<title>Message Authentication Failure : TimeStamp &amp; Clock Skew Issue (Part 1)</title>
		<link>http://intrepiddeveloper.wordpress.com/2008/08/24/message-authentication-failure-timestamp-clock-skew-issue/</link>
		<comments>http://intrepiddeveloper.wordpress.com/2008/08/24/message-authentication-failure-timestamp-clock-skew-issue/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 03:09:45 +0000</pubDate>
		<dc:creator>intrepiddeveloper</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://intrepiddeveloper.wordpress.com/?p=58</guid>
		<description><![CDATA[Recently I came across an interesting issue with service binding and message security in WCF. The service was hosted in IIS and used message level security with UserName Credential and https for transport security. The two exposed bindings are as follows: &#60;wshttpbinding&#62;   &#60;binding name=&#34;wsHttpWithMessageSecurity&#34;&#62;     &#60;security mode =&#34;TransportWithMessageCredential&#34;&#62;       &#60;message clientCredentialType=&#34;UserName&#34; negotiateServiceCredential=&#34;true&#34;/&#62;     &#60;/security&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=58&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I came across an interesting issue with service binding and message security in WCF. The service was hosted in IIS and used message level security with UserName Credential and https for transport security. The two exposed bindings are as follows:</p>
<pre class="brush: xml;">
&lt;wshttpbinding&gt;
  &lt;binding name=&quot;wsHttpWithMessageSecurity&quot;&gt;
    &lt;security mode =&quot;TransportWithMessageCredential&quot;&gt;
      &lt;message clientCredentialType=&quot;UserName&quot; negotiateServiceCredential=&quot;true&quot;/&gt;
    &lt;/security&gt;
  &lt;/binding&gt;
&lt;/wshttpbinding&gt;

&lt;basichttpbinding&gt;
  &lt;binding name=&quot;MyBasicHttpBinding&quot;&gt;
    &lt;security mode=&quot;TransportWithMessageCredential&quot;&gt;
&lt;transport clientCredentialType=&quot;None&quot; proxyCredentialType=&quot;None&quot; realm =&quot;&quot;/&gt;
      &lt;message clientCredentialType =&quot;UserName&quot;/&gt;
    &lt;/security&gt;
  &lt;/binding&gt;
&lt;/basichttpbinding&gt;
</pre>
<p align="left">Everything worked fine when I testing my client and service hosted on the same machine i.e. local IIS but when I deployed the service to a remote server (IIS6/Win2K3 server) the service started throwing &#8220;<strong>Error verifying security of the message</strong>&#8221; exceptions/faults. I made sure there where no server/client certificate or SSL issues but that did not seem to be the issue.</p>
<p align="left">Here is the stack trace of the exception caught on the client side:</p>
<p style="padding-left:30px;" align="left"><span style="color:#993300;">System.ServiceModel.Security.MessageSecurityException was caught<br />
Message=&#8221;An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail.&#8221;<br />
Source=&#8221;mscorlib&#8221;<br />
StackTrace:<br />
Server stack trace:<br />
at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.ProcessReply(Message reply, SecurityProtocolCorrelationState correlationState, TimeSpan timeout)<br />
at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)<br />
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)<br />
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)<br />
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)<br />
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)<br />
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)<br />
Exception rethrown at [0]:<br />
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)<br />
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData, Int32 type)</span></p>
<p style="padding-left:30px;" align="left"><span style="color:#993300;">InnerException: System.ServiceModel.FaultException<br />
Message=&#8221;An error occurred when verifying security for the message.&#8221;</span>
</p>
<p align="left"><span style="color:#000000;">I enabled Security Auditing on the service for MessageAuthenticationAuditLevel =&#8221;Failure&#8221; and retested the client and checked the auditing log on the server. The log had the following entry:</span></p>
<p align="left">
<p class="MsoNormal" style="padding-left:30px;margin:0;"><span style="font-size:9pt;font-family:Consolas;">Message authentication failed.</span></p>
<p class="MsoNormal" style="padding-left:30px;margin:0;"><span style="font-size:9pt;font-family:Consolas;">Service: <span style="color:#993300;"><a title="https://mytestserver.com/service.svc/endpoint01" href="https://mytestserver.com/service.svc/endpoint01">https://mytestserver.com/service.svc/endpoint01</a></span></span></p>
<p class="MsoNormal" style="padding-left:30px;margin:0;"><span style="font-size:9pt;font-family:Consolas;">Action: <a title="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT" href="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT</a></span></p>
<p class="MsoNormal" style="padding-left:30px;margin:0;"><span style="font-size:9pt;font-family:Consolas;">ClientIdentity: </span></p>
<p class="MsoNormal" style="padding-left:30px;margin:0;"><span style="font-size:9pt;font-family:Consolas;">ActivityId: 00000000-0000-0000-8f01-0060000000a2</span></p>
<p class="MsoNormal" style="padding-left:30px;margin:0;"><span style="font-size:9pt;font-family:Consolas;">MessageSecurityException: The security timestamp is stale because<strong><em> its <span style="color:#ff0000;">expiration time</span></em></strong> (&#8217;2008-08-04T20:29:58.924Z&#8217;) is in the past. Current time is &#8217;2008-08-04T20:45:18.828Z&#8217; and allowed clock skew is &#8217;00:05:00</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><em>Basically the  client message failed message authentication since it is outside the acceptable time range when processed by the service. The main reason for this being the server &amp; client clocks out of sync or mismatched.<br />
</em>
</p>
<p class="MsoNormal" style="padding-left:30px;margin:0;">
<p class="MsoNormal" style="margin:0;">In the next post (i.e Part 2) I will explain the reason and the work around for this issue.</p>
<p class="MsoNormal" style="padding-left:30px;margin:0;">
<p class="MsoNormal" style="padding-left:30px;margin:0;">
<p align="left">
<p align="left">
<p><span><span><span style="font-family:Arial;"><span style="font-family:Arial;"> </span></span></span></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/intrepiddeveloper.wordpress.com/58/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/intrepiddeveloper.wordpress.com/58/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intrepiddeveloper.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intrepiddeveloper.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/intrepiddeveloper.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/intrepiddeveloper.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/intrepiddeveloper.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/intrepiddeveloper.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/intrepiddeveloper.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/intrepiddeveloper.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/intrepiddeveloper.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/intrepiddeveloper.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/intrepiddeveloper.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/intrepiddeveloper.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/intrepiddeveloper.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/intrepiddeveloper.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=58&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intrepiddeveloper.wordpress.com/2008/08/24/message-authentication-failure-timestamp-clock-skew-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79604ee124314c21fa7e0de7a27acf3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">intrepiddeveloper</media:title>
		</media:content>
	</item>
		<item>
		<title>Security Event Logging &amp; Auditing</title>
		<link>http://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/</link>
		<comments>http://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 03:18:51 +0000</pubDate>
		<dc:creator>intrepiddeveloper</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://intrepiddeveloper.wordpress.com/?p=40</guid>
		<description><![CDATA[Few days ago I was trying to debug a WCF service hosted on a remote server which was giving a very generic boilerplate security exceptions/faults. After scratching my head for sometime I decided to figure out how to enable logging these security exceptions on the server. I think for debugging purposes this is a great [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=40&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Few days ago I was trying to debug a WCF service hosted on a remote server which was giving a very generic boilerplate security exceptions/faults. After scratching my head for sometime I decided to figure out how to enable logging these security exceptions on the server. I think for debugging purposes this is a great tool and should be the first step when hunting down an elusive bug.</p>
<p>Its actually pretty straight forward to enable Security event auditing in WCF. You simply need to enable this in the configuration of the service.</p>
<pre class="brush: xml;">
&lt;configuration&gt;
    &lt;system .serviceModel&gt;
      &lt;behaviors&gt;
        &lt;behavior&gt;
          &lt;servicesecurityaudit auditLogLocation=&quot;Application&quot; serviceAuthorizationAuditLevel=&quot;Failure&quot; messageAuthenticationAuditLevel=&quot;Failure&quot; suppressAuditFailure=&quot;true&quot; /&gt;
        &lt;/behavior&gt;
      &lt;/behaviors&gt;
    &lt;/system&gt;
  &lt;/configuration&gt;
</pre>
<p>&#8216;<em>auditLogLocation</em>&#8216; specifies which log to write to with possible values Default, Application and Security.</p>
<p>&#8216;<em>messageAuthenticationAuditLevel</em>&#8216;  &amp; &#8216;<em>serviceAuthorizationAuditLevel</em>&#8216; indicated when to log the event i.e. on None ,Failure ,Success and SuccessOrFailure for message and service authorization respectively.</p>
<p>&#8216;<em>suppressAuditFailure</em>&#8216; basically defines who (i.e. the service or the system) handles a AuditFailure event (like unable to write to log or log is full, etc). In case of true Audit Failures are ignored and request is processed normally.</p>
<p>In the Event Viewer note the source is listed as ServiceModel and message related information is logged in an un-encrypted form.</p>
<p><a href="http://intrepiddeveloper.files.wordpress.com/2008/08/securityauditlog.jpg"><img class="alignnone size-full wp-image-44" src="http://intrepiddeveloper.files.wordpress.com/2008/08/securityauditlog.jpg?w=725&#038;h=258" alt="" width="725" height="258" /></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/intrepiddeveloper.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/intrepiddeveloper.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intrepiddeveloper.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intrepiddeveloper.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/intrepiddeveloper.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/intrepiddeveloper.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/intrepiddeveloper.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/intrepiddeveloper.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/intrepiddeveloper.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/intrepiddeveloper.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/intrepiddeveloper.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/intrepiddeveloper.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/intrepiddeveloper.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/intrepiddeveloper.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/intrepiddeveloper.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/intrepiddeveloper.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=40&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79604ee124314c21fa7e0de7a27acf3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">intrepiddeveloper</media:title>
		</media:content>

		<media:content url="http://intrepiddeveloper.files.wordpress.com/2008/08/securityauditlog.jpg" medium="image" />
	</item>
		<item>
		<title>Generating Service Client Proxy</title>
		<link>http://intrepiddeveloper.wordpress.com/2008/07/17/genrarating-service-client-proxy/</link>
		<comments>http://intrepiddeveloper.wordpress.com/2008/07/17/genrarating-service-client-proxy/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 02:36:46 +0000</pubDate>
		<dc:creator>intrepiddeveloper</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://intrepiddeveloper.wordpress.com/?p=5</guid>
		<description><![CDATA[Creating a Service Client proxy and overcoming the "Metadata Exchange Error, could not establish trust relationship for SSL/TLS secure channel" Error.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=5&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">To consume a service you generally need a client side proxy of the service being consumed to talk to your application. Most of the time the simpler approach is to add a reference to the service in VisualStudio and let it work its magic. Eventually there will be situations where this approach is not sufficient and need more manual intervention. <strong><em>SvcUtil.exe</em></strong> (ServiceModel Metadata Utility) is a command line tool which comes as a part of the .NET Framework and does this job. In fact VisualStudio itself use this utility behind the scenes with all the right switches.</p>
<p>There are usually two steps involved with creating the client proxy, namely Get the Service metadata and Generate code from the metadata.</p>
<p>There might be two scenarios you might encounter when dealing with external Services, i.e.</p>
<p>1.      Hosted or Running Services. (should expose a MEX endpoint)</p>
<p>2.      Service assembly or library.</p>
<p>To generate client proxy and configuration from a compiled service assembly required two steps:</p>
<p>1.      Extract the service metadata as:</p>
<p style="text-align:center;"><span style="color:#993300;"><em>SvcUtil.exe /t:metadata serviceassemblyname.dll</em></span></p>
<p>This step would produce the WSDL and the XSDs from the assembly.</p>
<p>2.      Generate proxy from the metadata as:</p>
<p style="text-align:center;"><span style="color:#993300;">SvcUtil.exe /t:code [path]*.wsdl [path]*.xsd /out:[path]Proxy.cs /config:[path]App.config</span></p>
<p>Now in case of a hosted/running service both steps 1 &amp; 2 are usually combined as one as below:</p>
<p style="text-align:center;"><span style="color:#993300;"><em>SvcUtil.exe /t:code [Service URL] /out:[path]Proxy.cs /config:[path]App.config</em></span></p>
<p style="text-align:justify;">I ran into an interesting problem when I tried to execute the above command against an IIS hosted service which exposes the MEX binding over https. ScvUtil failed to pull the service metadata and threw a &#8220;<em>WS-Metadata Exchange Error</em>. Could <em>not establish trust relationship</em> for SSL/TLS secure channel. The remote certificate is invalid according to the validation procedure.&#8221;</p>
<p>Now I know this is cause of the fact that the server certificate is not signed by a TrustedRootCA or installed in the trusted store. This is not unusual for development and test environments.</p>
<p style="text-align:justify;">One option is to install the server certificate in the trusted store but I am trying to find if there is an option to override the validation procedure that the underlying protocols use to establish a secure channel. I know VisualStudio gives a warning in this case but you can still proceed if you choose to. I don&#8217;t know if there is way around with just using SvcUtil directly from command line, however for your Client side there is a work around explained below.</p>
<p style="text-align:justify;">When a client applications trys to connect to a URI, it requests a <em>System.Net.ServicePoint</em> class instance through <em>System.Net.ServicePointManager</em> class. Each ServicePoint maintains its connection to the URI for specific time and then recycles. The ServicePointManager class has callback property (which is our hook-in point):<span style="color:#993300;"><span class="keyword"> public</span> <span class="keyword">static</span> RemoteCertificateValidationCallback <span class="identifier">ServerCertificateValidationCallback</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; } <span style="color:#000000;">which basically verifys the remote SSL certificate used for authentication. </span></span></p>
<p style="text-align:justify;"><span style="color:#993300;"><span style="color:#000000;">The sample below demonstrates how.</span></span></p>
<pre class="brush: csharp;">
public class CustomCertificateValidation
    {
        CustomCertificateValidation()
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback +=
            new System.Net.Security.RemoteCertificateValidationCallback(CertValidate);
        }
        bool CertValidate(object sender,
        System.Security.Cryptography.X509Certificates.X509Certificate cert,
        System.Security.Cryptography.X509Certificates.X509Certificate.X509Chain chain,
        System.Net.Security.SslPolicyErrors error)
        {
            //Put your validation logic here
        }
    }
</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/intrepiddeveloper.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/intrepiddeveloper.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/intrepiddeveloper.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/intrepiddeveloper.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/intrepiddeveloper.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/intrepiddeveloper.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/intrepiddeveloper.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/intrepiddeveloper.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/intrepiddeveloper.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/intrepiddeveloper.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/intrepiddeveloper.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/intrepiddeveloper.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/intrepiddeveloper.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/intrepiddeveloper.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/intrepiddeveloper.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/intrepiddeveloper.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=intrepiddeveloper.wordpress.com&amp;blog=4073984&amp;post=5&amp;subd=intrepiddeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://intrepiddeveloper.wordpress.com/2008/07/17/genrarating-service-client-proxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79604ee124314c21fa7e0de7a27acf3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">intrepiddeveloper</media:title>
		</media:content>
	</item>
	</channel>
</rss>
