<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.arquitecturadesoftware.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Abel Pereira</title><subtitle type="html" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61129.2">Community Server</generator><updated>2007-01-20T02:16:00Z</updated><entry><title>Who’s the *** on Microsoft?</title><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx</id><published>2008-12-10T02:39:16Z</published><updated>2008-12-10T02:39:16Z</updated><content type="html">&lt;p&gt;Yes it’s true. *** Hardt on Microsoft. &lt;/p&gt;  &lt;p&gt;&lt;a title="http://identity20.com/?p=171" href="http://identity20.com/?p=171"&gt;http://identity20.com/?p=171&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx&amp;amp;;subject=Who%e2%80%99s+the+***+on+Microsoft%3f" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx&amp;amp;;title=Who%e2%80%99s+the+***+on+Microsoft%3f" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx&amp;amp;title=Who%e2%80%99s+the+***+on+Microsoft%3f" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx&amp;amp;;title=Who%e2%80%99s+the+***+on+Microsoft%3f" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx&amp;amp;;title=Who%e2%80%99s+the+***+on+Microsoft%3f&amp;amp;;top=1" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2008/12/10/who-s-the-dick-on-microsoft.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.arquitecturadesoftware.org/aggbug.aspx?PostID=20193" width="1" height="1"&gt;</content><author><name>abel.pereira</name><uri>http://www.arquitecturadesoftware.org/members/abel.pereira.aspx</uri></author><category term="Stuff" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/Stuff/default.aspx" /></entry><entry><title>.NET University</title><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx</id><published>2007-11-13T02:52:14Z</published><updated>2007-11-13T02:52:14Z</updated><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Another way for sharing knowledge at &lt;a href="http://www.dotnet-u.com" target="_blank"&gt;.NET University&lt;/a&gt;. It uses an interesting community (free) oriented model: you can volunteer to share your knowledge through a structured course that you suggest, or you can simply attend an available course.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx&amp;amp;;subject=.NET+University" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx&amp;amp;;title=.NET+University" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx&amp;amp;title=.NET+University" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx&amp;amp;;title=.NET+University" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx&amp;amp;;title=.NET+University&amp;amp;;top=1" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/11/13/net-university.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.arquitecturadesoftware.org/aggbug.aspx?PostID=1309" width="1" height="1"&gt;</content><author><name>abel.pereira</name><uri>http://www.arquitecturadesoftware.org/members/abel.pereira.aspx</uri></author><category term=".NET" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/.NET/default.aspx" /><category term="Community" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/Community/default.aspx" /><category term="Findings" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/Findings/default.aspx" /></entry><entry><title>Microsoft SharedView for team collaboration</title><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx</id><published>2007-08-25T01:01:33Z</published><updated>2007-08-25T01:01:33Z</updated><content type="html">&lt;p&gt;While searching for a team collaboration tool that would easily allow&amp;nbsp;sharing my screen and documents with other team members, I came across &lt;a title="Microsoft SharedView Beta download page" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ddbf048d-db67-4c56-9335-6964e15975d2&amp;amp;DisplayLang=en" target="_blank"&gt;Microsoft SharedView.&lt;/a&gt;&amp;nbsp;This&amp;nbsp;beta, released on May 2007,&amp;nbsp;allows a &lt;a title="Welcome to Microsoft SharedView Beta" href="https://connect.microsoft.com/content/content.aspx?ContentID=1301&amp;amp;SiteID=94&amp;amp;wa=wsignin1.0" target="_blank"&gt;"fast, easy way to share documents and screen views with small groups of friends or coworkers; anytime, anywhere."&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The&amp;nbsp;usability just&amp;nbsp;is great, despite the poor performance and the lack of P2P support - something to be fixed for the RTM (hopelly).&amp;nbsp;It is a small and simple tool&amp;nbsp;that integrates with Windows Live Messenger making it really easy to use.&lt;/p&gt; &lt;p&gt;Check it out.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx&amp;amp;;subject=Microsoft+SharedView+for+team+collaboration" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx&amp;amp;;title=Microsoft+SharedView+for+team+collaboration" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx&amp;amp;title=Microsoft+SharedView+for+team+collaboration" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx&amp;amp;;title=Microsoft+SharedView+for+team+collaboration" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx&amp;amp;;title=Microsoft+SharedView+for+team+collaboration&amp;amp;;top=1" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/08/25/microsoft-sharedview-for-team-collaboration.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.arquitecturadesoftware.org/aggbug.aspx?PostID=1171" width="1" height="1"&gt;</content><author><name>abel.pereira</name><uri>http://www.arquitecturadesoftware.org/members/abel.pereira.aspx</uri></author><category term="Tools" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/Tools/default.aspx" /></entry><entry><title>Sharing an interesting found... sqltool</title><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx</id><published>2007-04-04T22:18:42Z</published><updated>2007-04-04T22:18:42Z</updated><content type="html">&amp;nbsp;&amp;nbsp;  &lt;p&gt;I just noticed this interesting release on&amp;nbsp;&lt;a href="http://www.codeplex.com" target="_blank"&gt;Codeplex&lt;/a&gt;&amp;nbsp;called &lt;a href="http://www.codeplex.com/sqlhost"&gt;sqltool&lt;/a&gt;. This project provides two tools:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Database Publishing Wizard  &lt;li&gt;Database Publishing Services&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Database Publishing Wizard (supporting command line mode &amp;amp; Visual Studio integration) allows to script a database to a file (schema&amp;nbsp;&amp;amp;| data) or publish it on a server (with Database Publishing Services).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://www.arquitecturadesoftware.org/blogs/abelpereira/WindowsLiveWriter/Sharinganinterestingfound_143FF/dbpw1_118.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="480" src="http://www.arquitecturadesoftware.org/blogs/abelpereira/WindowsLiveWriter/Sharinganinterestingfound_143FF/dbpw1_1_thumb16.jpg" width="527" border="0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx&amp;amp;;subject=Sharing+an+interesting+found...+sqltool" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx&amp;amp;;title=Sharing+an+interesting+found...+sqltool" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx&amp;amp;title=Sharing+an+interesting+found...+sqltool" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx&amp;amp;;title=Sharing+an+interesting+found...+sqltool" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx&amp;amp;;title=Sharing+an+interesting+found...+sqltool&amp;amp;;top=1" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/04/04/sharing-an-interesting-found-sqltool.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.arquitecturadesoftware.org/aggbug.aspx?PostID=979" width="1" height="1"&gt;</content><author><name>abel.pereira</name><uri>http://www.arquitecturadesoftware.org/members/abel.pereira.aspx</uri></author><category term="SQL" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/SQL/default.aspx" /><category term="OpenSource" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/OpenSource/default.aspx" /></entry><entry><title>Using transport security on a self-hosted WCF service with client credential - certificate</title><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx</id><published>2007-01-20T02:34:00Z</published><updated>2007-01-20T02:34:00Z</updated><content type="html">If you read my previous post concerning &lt;a href="http://codefeeling.net/blog/ct.ashx?id=e64691c5-f5e4-4e5d-b5fc-27236ce145f4&amp;amp;url=http%3a%2f%2fcodefeeling.net%2fblog%2f2006%2f11%2f03%2fUsing%2bTransport%2bSecurity%2bSSL%2bOn%2bA%2bSelfhosted%2bWCF%2bService.aspx"&gt;Transport Security on a Self-Hosted WCF service&lt;/a&gt;,
you may realize that I was using a digital certificate (X.509) on a
basicHttpBinding to encrypt our channel, but with no client
authentication. WCF supports several types of client authentication:
Basic, Digest, NTLM, Windows and Certificate. I'll focus this post on a
client authentication, or if you want, Transport Client Credential:
Certificate.&lt;p&gt;With transport security settled to certificate and a
client credential type as certificate were are able to mutually
authenticate the server to the client (the SSL connection) and the
client to the server (through the client credential).&lt;/p&gt;&lt;p&gt;The first thing to do is to enable transport security. I'll not go on this, because my &lt;a href="http://codefeeling.net/blog/ct.ashx?id=e64691c5-f5e4-4e5d-b5fc-27236ce145f4&amp;amp;url=http%3a%2f%2fcodefeeling.net%2fblog%2f2006%2f11%2f03%2fUsing%2bTransport%2bSecurity%2bSSL%2bOn%2bA%2bSelfhosted%2bWCF%2bService.aspx"&gt;previous post&lt;/a&gt; discusses exactly this, check it out.&lt;/p&gt;&lt;p&gt;Assuming
that you have already transport security running ok, you will need to
add a few more information into your configuration file:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background:white none repeat scroll 0% 50%;font-family:Courier New;font-size:8pt;color:black;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:maroon;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;"&lt;span style="color:blue;"&gt; ?&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;bindings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;bindingWithTransportSecurity&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;security&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;mode&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Transport&lt;/span&gt;"&lt;span style="color:blue;"&gt; &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&lt;span style="color:maroon;"&gt;transport&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;clientCredentialType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Certificate&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;proxyCredentialType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;None&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;security&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;bindings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;behaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;behavior&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;myServiceBehavior&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceMetadata&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;httpsGetEnabled&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;behavior&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;behaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;services&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;service&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;behaviorConfiguration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;myServiceBehavior&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Demo.HelloWorldService&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;endpoint&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;address&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;https://MYSERVER:8888/demo&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;basicHttpBinding&lt;/span&gt;"&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;bindingWithTransportSecurity&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;contract&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Demo.IHelloWorldService&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;host&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;baseAddresses&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;baseAddress&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;https://MYSERVER:8888/demo&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;baseAddresses&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;host&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;service&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;services&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;br&gt;The thing here, is to define the client credential type has shown
in bold in the server config file. On the client side, your client
configuration file must be compliant with the server configuration. The
client configuration follows:&lt;br&gt;&lt;br&gt;
&lt;div style="background:white none repeat scroll 0% 50%;font-family:Courier New;font-size:8pt;color:black;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:maroon;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;"&lt;span style="color:blue;"&gt; ?&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;behaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;endpointBehaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;behavior&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;clientBehavior&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;clientCredentials&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;span style="color:maroon;"&gt;clientCertificate&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;findValue&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Abel Eduardo Pereira&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;storeLocation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;CurrentUser&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;x509FindType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;FindBySubjectName&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;storeName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;My&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;clientCredentials&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;behavior&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;endpointBehaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;behaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;bindings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;basicHttpClientBinding&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;security&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;mode&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Transport&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;span style="color:maroon;"&gt;transport&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;clientCredentialType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Certificate&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;proxyCredentialType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;None&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;realm&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;""&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;security&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;bindings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;client&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;endpoint&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;address&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;https://sdev44001:8888/demo&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;basicHttpBinding&lt;/span&gt;"&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;basicHttpClientBinding&lt;/span&gt;"&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;contract&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Demo.Proxy.&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;IHelloWorldService&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;behaviorConfiguration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;clientBehavior&lt;/span&gt;"&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;client&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;br&gt;At bold, you can find the relevant parts in the client
configuration file. The first bolded part, specifies the certificate
that will be used for client authentication. This certificate was
generated as being a &lt;i&gt;Client Authentication type &lt;/i&gt;certificate from the Certificate Authority.&lt;br&gt;The second bolded part indicates that we will be using a digital certificate as the client credential.&lt;br&gt;&lt;br&gt;This is all you have to do on your client and server configuration files. However, not enough to put working.&lt;br&gt;The
next step is to reconfigure the server certificate binding to the port
to allow client certificates, enabling mutual authentication. Assuming
that you have read and tried to do what's in my previous post, you
first need to clear the configuration you done with the HttpCfg.exe
tool:&lt;br&gt;&lt;br&gt;&lt;hr&gt;&lt;pre&gt;C:\Program Files\Support Tools&amp;gt;httpcfg delete ssl -i 0.0.0.0:8888&lt;/pre&gt;&lt;pre&gt;HttpDeleteServiceConfiguration completed with 0.&lt;br&gt;&lt;/pre&gt;&lt;hr&gt;&lt;pre&gt;&lt;br&gt;&lt;/pre&gt;The
previous command removes the certificate binding to the IP 0.0.0.0
(0.0.0.0 represents the machine address, so it will bind to every IP
addresses your machine has)&amp;nbsp; and port 8888 you had previously
configured. You should ignore this command if you haven't done any
IP:Port - certificate binding.&lt;br&gt;&lt;br&gt;Now, you need to configure to enable mutual authentication:&lt;br&gt;&lt;br&gt;&lt;hr&gt;&lt;pre&gt;C:\Program Files\Support Tools&amp;gt;httpcfg set ssl &lt;font color="#0000ff"&gt;-i 0.0.0.0:8888&lt;/font&gt; &lt;font color="#ff0000"&gt;-h e561943dac9441e1ecaafb064e86b047672adb2d&lt;/font&gt; &lt;font color="#006400"&gt;-f 2&lt;/font&gt; &lt;font color="#ffa500"&gt;-m 1&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;HttpSetServiceConfiguration completed with 0.&lt;/pre&gt;&lt;hr&gt;&lt;br&gt;In the blue part, we define the IP &amp;amp; port to which we want to bind your certificate used to enable transport security. &lt;br&gt;In
the red part, we indicate the certificate being used to enable
transport security. We specify the certificate by its SHA1 hash. Once
again, check the previous port for further details.&lt;br&gt;In the green
part, we indicate we want to negociate the client certificate. This is
the key point that enables the client credential to be accepted from
the server.&lt;br&gt;Finally, in the orange part, we specify the certificate
check mode. In this case, we are specifying that the client certificate
will not be verified for revogation (something you don't want to do in
a production environment).&lt;br&gt;&lt;br&gt;Now we are almost done. Just a few
check ups and we are ready to hit F5. You will mainly need this if you
don't have a Certificate Authority available or if your certificates
are issued from the makecert.exe tool.&lt;br&gt;&lt;br&gt;Your client has to trust
the server certificate (the certificate used enabling transport
security, - SSL). Yet, it needs the public key of the server
certificate.&lt;br&gt;If you don't have a Certificate Authority that can tell
you&amp;nbsp; whether the server certificate is trustable or not you should add
the root certificate (that makes part of the server certificate) into
the Local Computer | Trusted Root Certificate Authorities. Also, you
need to install the server certificate public key on the client.&lt;br&gt;&lt;br&gt;You can install the server certificate public key on the client, by exporting the server certificate to a file:&lt;br&gt;&lt;br&gt;&lt;img src="http://codefeeling.net/blog/content/binary/exportcert1.JPG" style="width:861px;height:451px;" border="0"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://codefeeling.net/blog/content/binary/exportcert2.JPG" style="width:879px;height:337px;" border="0"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://codefeeling.net/blog/content/binary/exportcert3.JPG" style="width:876px;height:336px;" border="0"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Now, go to the client and import the server certificate into &lt;i&gt;Current User store | Personal&lt;/i&gt;. &lt;br&gt;Now import the root certificate into &lt;i&gt;Current User store | Trusted Root Certification Authorities &lt;/i&gt;using the same procedure:&lt;i&gt;&lt;br&gt;&lt;br&gt;&lt;/i&gt;&lt;img src="http://codefeeling.net/blog/content/binary/exportrootcert1.JPG" border="0"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;What
you have done so far was to give the server's certificate (containing
the public key) to the client and made the client trust this
certificate. This should only be necessary if you don't have a
certificate authority in place.&lt;br&gt;The next step is to make the client
certificate trustable by the server. You need to execute the inverse
procedure to allow the server to trust the client.&lt;br&gt;&lt;br&gt;And now, the good part: run your service. Invoke a service operation from the client, and check the&amp;nbsp;
&lt;div style="background:white none repeat scroll 0% 50%;font-family:Courier New;font-size:8pt;color:black;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
&lt;p style="margin:0px;"&gt;&lt;font size="2"&gt;&lt;span style="color:teal;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;font size="2"&gt;&lt;span style="color:teal;"&gt;OperationContext&lt;/span&gt;.Current.ServiceSecurityContext.PrimaryIdentity&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;&lt;br&gt;The PrimaryIdentity should contain the client identity based on the client certificate.
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx&amp;amp;;subject=Using+transport+security+on+a+self-hosted+WCF+service+with+client+credential+-+certificate" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx&amp;amp;;title=Using+transport+security+on+a+self-hosted+WCF+service+with+client+credential+-+certificate" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx&amp;amp;title=Using+transport+security+on+a+self-hosted+WCF+service+with+client+credential+-+certificate" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx&amp;amp;;title=Using+transport+security+on+a+self-hosted+WCF+service+with+client+credential+-+certificate" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx&amp;amp;;title=Using+transport+security+on+a+self-hosted+WCF+service+with+client+credential+-+certificate&amp;amp;;top=1" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service-with-client-credential-certificate.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.arquitecturadesoftware.org/aggbug.aspx?PostID=742" width="1" height="1"&gt;</content><author><name>abel.pereira</name><uri>http://www.arquitecturadesoftware.org/members/abel.pereira.aspx</uri></author><category term="WCF" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/WCF/default.aspx" /></entry><entry><title>Using transport security on a self-hosted WCF service</title><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx</id><published>2007-01-20T02:31:00Z</published><updated>2007-01-20T02:31:00Z</updated><content type="html">I've just spent half a day with my colleague Sérgio to get this thing working, and I've decided to share it with the community.&lt;br&gt;&lt;br&gt;The
deal was to enable transport security on a basicHttpBinding in a
self-hosted WCF service. I am not going into the service definition
logic because it's not really relevant in this context. Instead I'll
focus on configuration and the steps for achieving transport security
using a service certificate (X.509 certificate).&lt;br&gt;If you are new on
PKI and the concepts behind digital certificates, you should get some
background info to help you to understand some of these concepts. Check
this topic group on MSDN concerning &lt;a href="http://codefeeling.net/blog/ct.ashx?id=3703b2f7-ea62-4a80-b837-0ae13d6516dc&amp;amp;url=http%3a%2f%2fwindowssdk.msdn.microsoft.com%2fen-us%2flibrary%2fms733043.aspx"&gt;Transport Security&lt;/a&gt; that will help you to understand the underlying concepts of PKI. &lt;br&gt;&lt;br&gt;&lt;u&gt;An important point here, is that WCF does not internally enable transport security (SSL).&lt;/u&gt;
You can achieve transport security in WCF by introducing some external
artifacts. If you are hosting your service on IIS (which is not the
case in this example), you can use IIS to configure and enable SSL.
There is at least one sample on the Windows SDK that addresses this
scenario.&lt;br&gt;The other scenario is enabling SSL on a self-hosted service (and this is what this post is about).&lt;br&gt;&lt;br&gt;The followed example was created using the .NET Framework 3.0 September CTP.&lt;br&gt;&lt;br&gt;The first step is to create your service logic. The service configuration will be exemplified declaratively on the .config file:&lt;br&gt;&lt;br&gt;
&lt;div style="background:white none repeat scroll 0% 50%;font-size:8pt;color:black;font-family:Courier New;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
&lt;div style="background:white none repeat scroll 0% 50%;font-size:8pt;color:black;font-family:Courier New;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:maroon;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;"&lt;span style="color:blue;"&gt; ?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;bindings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;bindingWithTransportSecurity&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;security&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;mode&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Transport&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;transport&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;clientCredentialType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;None&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;security&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;basicHttpBinding&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;bindings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;behaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;behavior&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;myServiceBehavior&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;  &amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt;
if you remove this element it will also works, this is not necessary
for the SSL. SSL is achieved through the HttpCfg.exe as we'll see
bellow &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceCredentials&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceCertificate&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;findValue&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;CN=MYSERVER&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;storeLocation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;LocalMachine&lt;/span&gt;"&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;x509FindType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;FindBySubjectDistinguishedName&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;storeName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;My&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceCredentials&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; publish service metadata from a HTTPS GET request ex: https://MYSERVER:8888/demo?wsdl &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceMetadata&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;httpsGetEnabled&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;true&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;behavior&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;behaviors&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;services&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;service&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;behaviorConfiguration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;myServiceBehavior&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Demo.HelloWorldService&lt;/span&gt;"&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;endpoint&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;address&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;https://MYSERVER:8888/demo&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;basicHttpBinding&lt;/span&gt;"&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;bindingWithTransportSecurity&lt;/span&gt;"&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;contract&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;Demo.IHelloWorldService&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;host&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;baseAddresses&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;baseAddress&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;"&lt;span style="color:blue;"&gt;https://MYSERVER:8888/demo&lt;/span&gt;"&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;baseAddresses&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;host&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;service&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;services&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;This
file associated to your service contains the configuration data to
enable transport security to your service.&amp;nbsp; You now need to issue the
proper certificate using a CA or makecert (for testing purposes). If
you are using a Microsoft Windows CA you can request the digital
certificate by choosing:&lt;br&gt;&lt;i&gt;Advanced Certificate Request &lt;/i&gt;from
the CA the web application and provide the hostname as the name
(subject name) for your digital certificate. In this case, it will be
MYSERVER. Also, you must request the certificate type as &lt;i&gt;Server Authentication&lt;/i&gt;, indicate you want to store the certificate on the &lt;i&gt;Local Computer Store&lt;/i&gt; and the hash being a &lt;i&gt;SHA1 &lt;/i&gt;hash type.&lt;br&gt;Then,
go to the Certification Authority console and issue the certificate
that should be in pending. After doing this, go back to the CA web
application, and install the certificate on your computer. Check if the
certificate was added to the Local Computer store, under
Personal\Certificates.&lt;br&gt;&lt;br&gt;Now you are almost done. Remember that
WCF does not internally enable transport security. You have to
configure this by yourself. To achieve this you will require the
HttpCfg.exe tool. This is part of Windows XP SP2 Support Tools and is
available for download &lt;a href="http://codefeeling.net/blog/ct.ashx?id=3703b2f7-ea62-4a80-b837-0ae13d6516dc&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3fFamilyId%3d49AE8576-9BB9-4126-9761-BA8011FABF38%26amp%3bdisplaylang%3den"&gt;here&lt;/a&gt;. (This tool is available by default on Windows 2003).&lt;br&gt;If the HttpCfg.exe is installed use it to configure a port with an X.509 certificate:&lt;br&gt;&lt;br&gt;&lt;div style="background:white none repeat scroll 0% 50%;font-size:8pt;color:black;font-family:Courier New;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;&lt;pre&gt;HttpCfg.exe set ssl -i 0.0.0.0:8888 -h e561943dac9441e1ecaafb064e86b047672adb2d -n LOCAL_MACHINE -c MY&lt;br&gt;&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;where 0.0.0.0:8888, is the IP Address and the port for your
certificate and the e561943dac9441e1ecaafb064e86b047672adb2d is the
thumbprint of the certificate (the SHA1 hash) that you can obtain on
the certificate &lt;i&gt;Details&lt;/i&gt; tab in the certificate (when copying it remember to remove the spaces on it).&lt;/p&gt;
And that should be done. You can now run your service using transport security on a self-hosted WCF service.
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx&amp;amp;;subject=Using+transport+security+on+a+self-hosted+WCF+service" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx&amp;amp;;title=Using+transport+security+on+a+self-hosted+WCF+service" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx&amp;amp;title=Using+transport+security+on+a+self-hosted+WCF+service" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx&amp;amp;;title=Using+transport+security+on+a+self-hosted+WCF+service" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx&amp;amp;;title=Using+transport+security+on+a+self-hosted+WCF+service&amp;amp;;top=1" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/using-transport-security-on-a-self-hosted-wcf-service.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.arquitecturadesoftware.org/aggbug.aspx?PostID=741" width="1" height="1"&gt;</content><author><name>abel.pereira</name><uri>http://www.arquitecturadesoftware.org/members/abel.pereira.aspx</uri></author><category term="WCF" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/WCF/default.aspx" /></entry><entry><title>Parameter Validation Add-in (download)</title><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx</id><published>2007-01-20T02:27:00Z</published><updated>2007-01-20T02:27:00Z</updated><content type="html">Hello,&lt;br&gt;&lt;br&gt;I finally had the time to finish the Parameter Validation
Add-in. This add-in allows you to perform method's parameters
validation in a automatic manner based on configuration file. &lt;br&gt;&lt;br&gt;Take this as example:&lt;br&gt;
&lt;img src="http://codefeeling.net/blog/content/binary/context_menu.jpg" border="0"&gt;&lt;br&gt;In
the figure above, by calling the context menu, you'll see a new menu
item named "Validate Parameters". By clicking on it, the add-in will
validate the method's parameters based on a configuration file (we'll
get on that config file soon...).&lt;br&gt;&lt;br&gt;So, the result will be something like this:&lt;br&gt;&lt;br&gt;&lt;img src="http://codefeeling.net/blog/content/binary/validation_result.jpg" border="0"&gt;&lt;br&gt;&lt;br&gt;The generated code is based on a XML configuration file (check &lt;a href="http://codefeeling.net/blog/ct.ashx?id=12f70784-555d-421e-8dde-341b4470e10c&amp;amp;url=http%3a%2f%2fcodefeeling.net%2fblog%2f2006%2f03%2f01%2fParameter%2bValidation%2bAddin%2bSchema.aspx"&gt;this post&lt;/a&gt;),
and also based on a language extension plugin. In this case a C#
language plugin. Since I almost only use C# on .NET context, I will
only provide the C# plugin for code generation, however it's really
easy to create language extension plugins for other languages; let me
know if you are interested on doing this.&lt;br&gt;The following picture, show the configuration/options window inside Microsoft Visual Studio 2005:&lt;br&gt;&lt;br&gt;&lt;img src="http://codefeeling.net/blog/content/binary/options_window.jpg" border="0"&gt;&lt;br&gt;&lt;br&gt;As
you can see, the add-in will ask you the path for the XML configuration
file. It is based on this file that the semantics for the code are
built. Also, you can see that it requires a plugin assembly; this
assembly contains one (or more) classes that implement a &lt;font color="#000000" face="Courier New"&gt;IIfStatementGenerator &lt;/font&gt;interface, and each of these classes are considered language extension plugins.&lt;br&gt;&lt;br&gt;The
add-in is working, but still needs some work and documentation
supporting it. Nevertheless, here are the binaries if you want to check
it while I don't post a stable release: &lt;a href="http://codefeeling.net/blog/ct.ashx?id=12f70784-555d-421e-8dde-341b4470e10c&amp;amp;url=http%3a%2f%2fcodefeeling.net%2fblog%2fcontent%2fbinary%2fParameterValidation20060327.rar"&gt;ParameterValidation20060327.rar (26.32 KB)&lt;/a&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx&amp;amp;;subject=Parameter+Validation+Add-in+(download)" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx&amp;amp;;title=Parameter+Validation+Add-in+(download)" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx&amp;amp;title=Parameter+Validation+Add-in+(download)" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx&amp;amp;;title=Parameter+Validation+Add-in+(download)" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx&amp;amp;;title=Parameter+Validation+Add-in+(download)&amp;amp;;top=1" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-download.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.arquitecturadesoftware.org/aggbug.aspx?PostID=740" width="1" height="1"&gt;</content><author><name>abel.pereira</name><uri>http://www.arquitecturadesoftware.org/members/abel.pereira.aspx</uri></author><category term="Visual Studio" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/Visual+Studio/default.aspx" /><category term="Add-ins" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/Add-ins/default.aspx" /></entry><entry><title>Parameter Validation Add-in (first steps...)</title><link rel="alternate" type="text/html" href="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx" /><id>http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx</id><published>2007-01-20T02:16:00Z</published><updated>2007-01-20T02:16:00Z</updated><content type="html">Greetings,&lt;br&gt;&lt;br&gt;Here is the Parameter Validation Schema for Visual Studio 2005 Add-in: &lt;a href="http://codefeeling.net/blog/ct.ashx?id=deea6eb6-c952-4cb8-8de3-7e1ff7717d4a&amp;amp;url=http%3a%2f%2fcodefeeling.net%2fschemas%2fParameterValidation.xsd"&gt;ParameterValidation.xsd&lt;/a&gt;&lt;br&gt;&lt;br&gt;The
parameter validation schema relates with Parameter Validation Add-in,
which allows you to validate method parameters automatically based on a
XML configuration file. &lt;br&gt;Here is an add-in example in action:&lt;br&gt;&lt;br&gt;&lt;img src="http://codefeeling.net/blog/content/binary/parameterValidationCtxMenu.jpg" border="0"&gt;&lt;br&gt;And here's the result:&lt;br&gt;&lt;br&gt;&lt;img src="http://codefeeling.net/blog/content/binary/parameterValidationCtxMenu2.jpg" border="0"&gt;&lt;br&gt;&lt;br&gt;This code was generated based on a XML configuration file:&lt;br&gt;&lt;br&gt;&lt;img src="http://codefeeling.net/blog/content/binary/parameterValidationConfig.jpg" border="0"&gt;&lt;br&gt;&lt;br&gt;I will be publishing the add-in very soon. Hope you enjoy it.
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx&amp;amp;;subject=Parameter+Validation+Add-in+(first+steps...)" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx&amp;amp;;title=Parameter+Validation+Add-in+(first+steps...)" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx&amp;amp;title=Parameter+Validation+Add-in+(first+steps...)" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx&amp;amp;;title=Parameter+Validation+Add-in+(first+steps...)" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx&amp;amp;;title=Parameter+Validation+Add-in+(first+steps...)&amp;amp;;top=1" target="_blank" title = "Post http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/2007/01/20/parameter-validation-add-in-first-steps.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.arquitecturadesoftware.org/aggbug.aspx?PostID=739" width="1" height="1"&gt;</content><author><name>abel.pereira</name><uri>http://www.arquitecturadesoftware.org/members/abel.pereira.aspx</uri></author><category term="Visual Studio" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/Visual+Studio/default.aspx" /><category term="Add-ins" scheme="http://www.arquitecturadesoftware.org/blogs/abelpereira/archive/tags/Add-ins/default.aspx" /></entry></feed>