<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Govind's WebLog : WCF</title><link>http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx</link><description>Tags: WCF</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Patterns and Practices: WCF Security Guidance available online </title><link>http://blogs.msdn.com/govindr/archive/2008/04/01/patterns-and-practices-wcf-security-guidance-available-online.aspx</link><pubDate>Tue, 01 Apr 2008 23:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8348775</guid><dc:creator>govindr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/govindr/comments/8348775.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=8348775</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Cambria&gt;The Microsoft Patterns and Practices team has created a guide for WCF security. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Cambria','serif'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin"&gt;&lt;A href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx" mce_href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx"&gt;http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx&lt;/A&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Cambria','serif'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin"&gt;You can find more information at the root site&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Cambria','serif'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin"&gt;&lt;A href="http://www.codeplex.com/WCFSecurity/" mce_href="http://www.codeplex.com/WCFSecurity/"&gt;http://www.codeplex.com/WCFSecurity/&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8348775" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Reliable Messaging and SecurityToken validation</title><link>http://blogs.msdn.com/govindr/archive/2007/08/27/reliable-messaging-and-securitytoken-validation.aspx</link><pubDate>Tue, 28 Aug 2007 02:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4599504</guid><dc:creator>govindr</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/govindr/comments/4599504.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=4599504</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;One of the things that have come up many times is how the service could stop a client from retrying a request for a valid security validation error while Reliable Messaging is enabled. If you are not familiar with the situation the essence of the problem is this, &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;Binding on the Service has Reliable Messaging (RM) enabled. You can do this using WsHttpBinding and setting the ReliableSession.Enabled property&amp;nbsp;to true. What this would mean is that the client will re-try the request when the service responds with any random failure, after a session has been established. By random failure I mean failures that does not close the RM session while sending back the response. A fault sent back with proper RM headers to close the message would not result in a retry of the failed request. Unfortunately all SecurityToken validation and SecurityHeader validation exceptions are treated random exceptions as the response does not contain any required header or is the response secured. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;One of the most common cases when&amp;nbsp;this happens is when RM is enabled and a Username/Password validation fails. WCF&amp;nbsp;provides extensibility points to &amp;nbsp;plug in your Custom Username/Password validator, but any exception from the validator does not close the RM session and hence the client keep retrying the request until it finally times out. The post discusses a work around to&amp;nbsp;close the RM session when such failures occur.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;Write a Custom Username/Password Authenticator and plug this into the service using a Custom ServiceCredentials. The Custom Authenticator should add a specific failure claim to the AuthorizationContext.&amp;nbsp; A sample code for the Custom Username/Password Authenticator is shown below.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;CustomUsernamePasswordAuthenticator&lt;/SPAN&gt; : &lt;SPAN style="COLOR: teal"&gt;UserNameSecurityTokenAuthenticator&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&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: blue"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;ReadOnlyCollection&lt;/SPAN&gt;&amp;lt;&lt;SPAN style="COLOR: teal"&gt;IAuthorizationPolicy&lt;/SPAN&gt;&amp;gt; ValidateUserNamePasswordCore(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; userName, &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; password)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: teal"&gt;Claim&lt;/SPAN&gt; claim = &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: teal"&gt;String&lt;/SPAN&gt;.CompareOrdinal(userName, password) == 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;claim = &lt;SPAN style="COLOR: teal"&gt;Claim&lt;/SPAN&gt;.CreateNameClaim(userName);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: blue"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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; &lt;/SPAN&gt;claim = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;Claim&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"http://contoso.com/InvalidUsernameClaim"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;, &lt;SPAN style="COLOR: teal"&gt;Rights&lt;/SPAN&gt;.PossessProperty);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: teal"&gt;List&lt;/SPAN&gt;&amp;lt;&lt;SPAN style="COLOR: teal"&gt;IAuthorizationPolicy&lt;/SPAN&gt;&amp;gt; policies = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;List&lt;/SPAN&gt;&amp;lt;&lt;SPAN style="COLOR: teal"&gt;IAuthorizationPolicy&lt;/SPAN&gt;&amp;gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: teal"&gt;List&lt;/SPAN&gt;&amp;lt;&lt;SPAN style="COLOR: teal"&gt;ClaimSet&lt;/SPAN&gt;&amp;gt; claimsets = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;List&lt;/SPAN&gt;&amp;lt;&lt;SPAN style="COLOR: teal"&gt;ClaimSet&lt;/SPAN&gt;&amp;gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;claimsets.Add(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;DefaultClaimSet&lt;/SPAN&gt;(claim));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;policies.Add(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;ClaimFactoryPolicy&lt;/SPAN&gt;(claimsets.AsReadOnly()));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: blue"&gt;return&lt;/SPAN&gt; policies.AsReadOnly();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.25in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;As you can see the above code is adding&amp;nbsp;a specific claim of type &lt;A href="http://contoso.com/InvalidUsernameClaim" mce_href="http://contoso.com/InvalidUsernameClaim"&gt;&lt;SPAN style="COLOR: blue; mso-bidi-font-size: 11.0pt"&gt;http://contoso.com/InvalidUsernameClaim&lt;/SPAN&gt;&lt;/A&gt; to the AuthorizationContext. For more information on how to plug custom authenticators in WCF you can take a look at &lt;A href="http://msdn2.microsoft.com/en-us/library/ms730079.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms730079.aspx"&gt;&lt;SPAN style="COLOR: blue; mso-bidi-font-size: 11.0pt"&gt;http://msdn2.microsoft.com/en-us/library/ms730079.aspx&lt;/SPAN&gt;&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;The next we would do is to write a Custom Service Authorization Manager (SAM). The SAM gets called when the request has finally passed through all the binding elements so the RM header on the Request has been consumed. When an Access Denied result is returned by the SAM the failure response returned will be returned as Access Denied fault with the RM header enabled in the response that closes the RM session. Our Custom SAML will look for the specific Claim of type &lt;A href="http://contoso.com/InvalidUsernameClaim" mce_href="http://contoso.com/InvalidUsernameClaim"&gt;&lt;SPAN style="COLOR: blue; mso-bidi-font-size: 11.0pt"&gt;http://contoso.com/InvalidUsernameClaim&lt;/SPAN&gt;&lt;/A&gt; to check whether to Authorize the user or not.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;CustomServiceAuthorizationManager&lt;/SPAN&gt; : &lt;SPAN style="COLOR: teal"&gt;ServiceAuthorizationManager&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&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: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;bool&lt;/SPAN&gt; CheckAccess(&lt;SPAN style="COLOR: teal"&gt;OperationContext&lt;/SPAN&gt; operationContext)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: teal"&gt;ReadOnlyCollection&lt;/SPAN&gt;&amp;lt;&lt;SPAN style="COLOR: teal"&gt;ClaimSet&lt;/SPAN&gt;&amp;gt; claimsets = operationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: blue"&gt;foreach&lt;/SPAN&gt; (&lt;SPAN style="COLOR: teal"&gt;ClaimSet&lt;/SPAN&gt; claimSet &lt;SPAN style="COLOR: blue"&gt;in&lt;/SPAN&gt; claimsets)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (claimSet.ContainsClaim(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;Claim&lt;/SPAN&gt;(&lt;SPAN style="COLOR: maroon"&gt;"http://contoso.com/InvalidUsernameClaim"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;, &lt;SPAN style="COLOR: teal"&gt;Rights&lt;/SPAN&gt;.PossessProperty)))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&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: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&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;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.25in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;Custom&amp;nbsp;SAM can be&amp;nbsp;plugged into the&amp;nbsp;ServiceCredentials as&amp;nbsp;shown below,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.25in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;service.Authorization.ServiceAuthorizationManager = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;CustomServiceAuthorizationManager&lt;/SPAN&gt;();&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;The fault returned by the Custom SAM will stop the client from retrying when a token validation failure happens on the Service end.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4599504" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Message+Security/default.aspx">Message Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Security+Tokens/default.aspx">Security Tokens</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Authorization/default.aspx">Authorization</category></item><item><title>Handling Mismatched Trust Versions on the Client</title><link>http://blogs.msdn.com/govindr/archive/2007/08/21/handling-mismatched-trust-versions-on-the-client.aspx</link><pubDate>Wed, 22 Aug 2007 00:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4499707</guid><dc:creator>govindr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/govindr/comments/4499707.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=4499707</wfw:commentRss><description>Federation Clients might have scenarios where it is talking to a Service and STS that don't have the same trust version. The Service WSDL can contain a RequestSecurityTokenTemplate with Trust elements that are in different version than the STS. In these cases a WCF client will convert the Trust elements received from the Service's RequestSecurityTokenTemplate to match the STS Trust version. WCF will handle mismatched Trust version only for Standard Binding. All algorithm parameters that we recognize as standard are part of the Standard Binding. Below is our behavior under various Trust settings between the Service and the STS. 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the below description RP refers to "Relying Party" or the "Service" and STS refers to "Security Token Service".&lt;/P&gt;
&lt;H1&gt;RP Feb 2005 &amp;amp; STS Feb 2005&lt;/H1&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;RP's WSDL contains the following elements in the RequestSecurityTokenTemplate.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;1. CanonicalizationAlgorithm&lt;/LI&gt;
&lt;LI&gt;2. EncryptionAlgorithm&lt;/LI&gt;
&lt;LI&gt;3. EncryptWith&lt;/LI&gt;
&lt;LI&gt;4. SignWith&lt;/LI&gt;
&lt;LI&gt;5. KeySize&lt;/LI&gt;
&lt;LI&gt;6. KeyType&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Client Config contains a list of parameters. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;WCF cannot differentiate between client and service parameters. We just add all the parameters and send them over the RST.&lt;/P&gt;
&lt;H1&gt;RP Trust 1.3 &amp;amp; STS Trust 1.3&lt;/H1&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;RP's WSDL contains the following elements in the RequestSecurityTokenTemplate.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;1. CanonicalizationAlgorithm&lt;/LI&gt;
&lt;LI&gt;2. EncryptionAlgorithm&lt;/LI&gt;
&lt;LI&gt;3. EncryptWith&lt;/LI&gt;
&lt;LI&gt;4. SignWith&lt;/LI&gt;
&lt;LI&gt;5. KeySize&lt;/LI&gt;
&lt;LI&gt;6. KeyType&lt;/LI&gt;
&lt;LI&gt;7. KeyWrapAlgorithm&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Client config contains a "secondaryParamters" element that wraps the RP specified parameters. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;WCF removes the EncryptionAlgorithm, CanonicalizationAlgorithm and KeyWrapAlgorithm from the top-level element under the RST if these are present inside the SecondaryParameters. We append the SecondaryParamters element as is to the outgoing RST. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;RP Trust Feb 2005 &amp;amp; STS Trust 1.3&lt;/H1&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;RP's WSDL contains the following elements in the RequestSecurityTokenTemplate.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;1. CanonicalizationAlgorithm&lt;/LI&gt;
&lt;LI&gt;2. EncryptionAlgorithm&lt;/LI&gt;
&lt;LI&gt;3. EncryptWith&lt;/LI&gt;
&lt;LI&gt;4. SignWith&lt;/LI&gt;
&lt;LI&gt;5. KeySize&lt;/LI&gt;
&lt;LI&gt;6. KeyType&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Client Config contains a list of parameters.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;WCF cannot differentiate between the Service and Client parameters in this case from config on the client side. So we convert all the parameters to Trust 1.3 namespace. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Our handling of KeyType, KeySize and TokenType elements in this case is as follows,&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI&gt;We download WSDL and create the binding and assign KeyType, KeySize and TokenType from RP's parameters and the client config is generated.&lt;/LI&gt;
&lt;LI&gt;Client can now change any parameter in the config.&lt;/LI&gt;
&lt;LI&gt;During Runtime WCF will copy all parameters specified inside the AdditionalTokenParameters section of the client config except KeyType, KeySize and TokenType as they were accounted for during config generation. &lt;/LI&gt;&lt;/UL&gt;
&lt;H1&gt;RP Trust 1.3 &amp;amp; STS Trust Feb 2005&lt;/H1&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;RP's WSDL contains the following elements in the RequestSecurityTokenTemplate.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;1. CanonicalizationAlgorithm&lt;/LI&gt;
&lt;LI&gt;2. EncryptionAlgorithm&lt;/LI&gt;
&lt;LI&gt;3. EncryptWith&lt;/LI&gt;
&lt;LI&gt;4. SignWith&lt;/LI&gt;
&lt;LI&gt;5. KeySize&lt;/LI&gt;
&lt;LI&gt;6. KeyType&lt;/LI&gt;
&lt;LI&gt;7. KeyWrapAlgorithm&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Client config contains a "secondaryParamters" element that wraps the RP specified parameters.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;WCF converts only EncryptionAlgorithm and CanonicalizationAlgorithm specified inside the "SecondaryParameters" and move them as top-level under the RST and replace the client specified values. &amp;nbsp;The "SecondaryParameters" element is dropped from the AdditionalRequestParameters.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4499707" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Federation/default.aspx">Federation</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Trust/default.aspx">Trust</category></item><item><title>Security element and "actor" attribute.</title><link>http://blogs.msdn.com/govindr/archive/2007/07/16/security-element-and-actor-attribute.aspx</link><pubDate>Tue, 17 Jul 2007 09:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3908147</guid><dc:creator>govindr</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/govindr/comments/3908147.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=3908147</wfw:commentRss><description>&lt;P&gt;SOAP 1.1 defines the attribute "actor" that can be on any SOAP header which will indicate who the ultimate processor of the header is going to be. It also defines a standard URI value for this actor attribute that is "&lt;A href="http://schemas.xmlsoap.org/soap/actor/next"&gt;&lt;FONT color=#0000cc&gt;http://schemas.xmlsoap.org/soap/actor/next&lt;/FONT&gt;&lt;/A&gt;" which implies that the header is intended for the very first SOAP application that processes the message. The absence of the actor attribute would mean the same as well. &lt;/P&gt;
&lt;P&gt;SOAP 1.2 renamed this attribute to "role". But the semantics remanis the same as SOAP 1.1.&lt;/P&gt;
&lt;P&gt;WCF Security does not recognize this attribute. WCF will not emit this attribute in the Security header element in any messages it emits. If a received message contains a actor attribute in the Security header the header will not be recognized even if the value is set to &lt;FONT color=#0000cc&gt;&lt;A href="http://schemas.xmlsoap.org/soap/actor/next"&gt;http://schemas.xmlsoap.org/soap/actor/next&lt;/FONT&gt;&lt;/A&gt;. You will see an exception that says "No Security header present in the message.". To work around this do not emit this attribute in the Security header in your messages to WCF.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3908147" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Message+Security/default.aspx">Message Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Updated Re-Serialize SAML token</title><link>http://blogs.msdn.com/govindr/archive/2007/05/03/updated-re-serialize-saml-token.aspx</link><pubDate>Thu, 03 May 2007 20:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2397574</guid><dc:creator>govindr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/govindr/comments/2397574.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=2397574</wfw:commentRss><description>There has been a lot of interest around this and hence I have attached some code listing to this post. &lt;A class="" href="http://blogs.msdn.com/govindr/archive/2006/10/24/re-serialize-saml-token.aspx" target=_blank mce_href="http://blogs.msdn.com/govindr/archive/2006/10/24/re-serialize-saml-token.aspx"&gt;Check it out!&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2397574" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/SAML/default.aspx">SAML</category></item><item><title>Using Visual Studio Intellisense to Edit WCF Configuration files.</title><link>http://blogs.msdn.com/govindr/archive/2007/03/06/using-visual-studio-intellisense-to-edit-wcf-configuration-files.aspx</link><pubDate>Wed, 07 Mar 2007 02:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1821936</guid><dc:creator>govindr</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1821936.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1821936</wfw:commentRss><description>&lt;P&gt;If you are using Visual Studio 2005 below is how you can&amp;nbsp;enable intellisense to edit your WCF config files.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Copy the Attached WCF Configuration schema file to your VS installation folder at %Program Files%\Visual Studio 8\Xml\Schemas. You will find DotNetConfig.xsd in the same directory. Open this file in notepad and&amp;nbsp; following right after the xs:schema element add the&amp;nbsp;below line,&lt;/P&gt;
&lt;P&gt;&amp;lt;xs:include schemaLocation="WCFConfig.xsd" /&amp;gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You will now have intellisense support for your WCF configuration files in VS!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1821936" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/govindr/attachment/1821936.ashx" length="1062426" type="application/xml" /><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Daylight savings changes and WCF Security Processing</title><link>http://blogs.msdn.com/govindr/archive/2007/02/20/daylight-savings-changes-and-wcf-security-processing.aspx</link><pubDate>Wed, 21 Feb 2007 07:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1732744</guid><dc:creator>govindr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1732744.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1732744</wfw:commentRss><description>&lt;P&gt;I had a question today from a customer who was concerned that his WCF application might start to behave erratically due to the new Daylight savings schedule. Then I realized that there has been quite some noise around this area and people are predicting systems to stop responding when the new Daylight savings goes into effect. It reminded me of the Y2K days which was hyped as the doomsday of the &lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Millennium&lt;/SPAN&gt;.&lt;/P&gt;
&lt;P&gt;In actual fact you don't have to worry about&amp;nbsp;anything. WCF security has been tested for daylight savings time changes and the fact that the change happens earlier is not of concern. To be specific, WCF is using UTC time in all its code that the local time really doesn't affect us. As long as you have the Windows patch to adjust your clock at the correct time you should be fine. So, Enjoy! Keep coding with WCF! &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1732744" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Asymmetric tokens and Mixed-Mode Security</title><link>http://blogs.msdn.com/govindr/archive/2007/02/06/asymmetric-tokens-and-mixed-mode-security.aspx</link><pubDate>Wed, 07 Feb 2007 09:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1617100</guid><dc:creator>govindr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1617100.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1617100</wfw:commentRss><description>&lt;P&gt;When you are using a X.509 Certificate as the client authentication token in &lt;A class="" title="Message Security Modes" href="http://blogs.msdn.com/govindr/archive/2007/02/06/wcf-security-modes.aspx" target=_blank mce_href="http://blogs.msdn.com/govindr/archive/2007/02/06/wcf-security-modes.aspx"&gt;Mixed-Mode Security&lt;/A&gt;&amp;nbsp;- apart from signing the Timestamp WCF will sign the 'To' header as well. This is to prevent a client spoofing attack by a rougue service. Consider the situation where the client does not sign the 'To' header and sends the message to a rogue service. As long as the Timestamp is valid the rogue service can just forward the message to another service that trusts the client's certificate. The receiving service would validate the signature on the Timestamp and will accept the message and will respond back to the rogue service as if it is the client. &lt;/P&gt;
&lt;P&gt;To prevent this WCF will sign the 'To' header as well when the client token used with Mixed-Mode security is an Asymmetric token. It will enforce the check on the receiving side as well. Now the rogue service cannot forward the message as the 'To' header needs to change for the called service and hence forces the service to create a new signature. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1617100" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Security+Tokens/default.aspx">Security Tokens</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Mixed-Mode+Security/default.aspx">Mixed-Mode Security</category></item><item><title>WCF Security Modes</title><link>http://blogs.msdn.com/govindr/archive/2007/02/06/wcf-security-modes.aspx</link><pubDate>Wed, 07 Feb 2007 08:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1617072</guid><dc:creator>govindr</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1617072.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1617072</wfw:commentRss><description>&lt;P&gt;WCF supports three types of Security. They are,&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Transport Security&lt;/LI&gt;
&lt;LI&gt;Mixed-Mode Security&lt;/LI&gt;
&lt;LI&gt;Message Security&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Let's discuss the various Security Modes below.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Transport Security is applied at the transport byte stream below the message layer. The message does not have a Security header and the message does not carry any user authentication data. It is the least flexible in terms of WS-Security usage and it is highly dependent on the transport. It is the fastest in terms of performance.&lt;/P&gt;
&lt;P&gt;Message Security is applied at the message layer and it is transport independent. It is a point to point security model with maximum flexibility in terms of having the message routed over different transports. WS-Security defines different ways to secure a message and the tokens that can be used. Message Security provides the maximum flexibility in terms of that as well. Message Security is slowest in terms of performance.&lt;/P&gt;
&lt;P&gt;Mixed-Mode Security is a hybrid between Transport and Message Security. The transport is encrypted and the message contains some user authentication tokens. If the token can provide a key (i.e., it is not a username/password token) then it will sign the timestamp in the security header. If the client token is a Asymmetric token then the 'To' header will be signed as well. It is faster than Message Security.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1617072" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Message+Security/default.aspx">Message Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/transport+security/default.aspx">transport security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Security+Tokens/default.aspx">Security Tokens</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Mixed-Mode+Security/default.aspx">Mixed-Mode Security</category></item><item><title>Security Header Layout</title><link>http://blogs.msdn.com/govindr/archive/2007/01/22/security-header-layout.aspx</link><pubDate>Tue, 23 Jan 2007 00:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1509899</guid><dc:creator>govindr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1509899.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1509899</wfw:commentRss><description>&lt;P&gt;There are four different security header layout that can be specified in WCF. The values are defined in WS-SecurityPolicy. They are,&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Strict&lt;/STRONG&gt; - All security tokens are defined in the security header before its first use. The primary signature should be specified before any endorsing signatures.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Lax&lt;/STRONG&gt; - All elements inside the security header can appear in any order. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;LaxWithTimestampFirst&lt;/STRONG&gt; - Timestamp element should be the first element that appears inside the security header. All other elements can appear in any order.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;LaxWithTimestampLast&lt;/STRONG&gt; - Timestamp element should be the last element inside the security header.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;WCF provides a way to specify the security header layout using a switch on the security binding element called securityHeaderLayout.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Strict&lt;/STRONG&gt; is the default mode in WCF. &lt;STRONG&gt;Lax&lt;/STRONG&gt; mode can be slower in rejecting invalid messages as&amp;nbsp;most of the&amp;nbsp;validations are done after the security header is consumed. &lt;STRONG&gt;LaxWithTimestampLast &lt;/STRONG&gt;serves the least purpose among the different header layouts but is defined for Interop reasons.&lt;/P&gt;
&lt;P&gt;So what should you use? &lt;STRONG&gt;Lax&lt;/STRONG&gt; is predominantly used when incoming message can be generated by different stacks. If all your messages are from WCF then using the default of &lt;STRONG&gt;Strict&lt;/STRONG&gt; gives the maximum benefit.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1509899" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Message+Security/default.aspx">Message Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category></item><item><title>WCF Support in Compact Framework</title><link>http://blogs.msdn.com/govindr/archive/2007/01/09/wcf-support-in-compact-framework.aspx</link><pubDate>Wed, 10 Jan 2007 01:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1441048</guid><dc:creator>govindr</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1441048.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1441048</wfw:commentRss><description>&lt;P&gt;In a nutshell, .NET Compact Framework 3.5 supported features for WCF include: messaging-layer communication, WS-security, and http and mail transports.&amp;nbsp; All of these a subsets of what the desktop supports, with the exception of the mail transport, which is new with NetCF. There is also some plans to provide a tool to generate code for a NetCF app that will allow the app to call a service on a desktop.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1441048" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/dotnet/default.aspx">dotnet</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category></item><item><title>Configuring HTTP in Windows Vista</title><link>http://blogs.msdn.com/govindr/archive/2007/01/09/configuring-http-in-windows-vista.aspx</link><pubDate>Tue, 09 Jan 2007 23:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1440242</guid><dc:creator>govindr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1440242.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1440242</wfw:commentRss><description>&lt;P&gt;Hosting a WCF service on a HTTP endpoint on Windows Vista has some issues given that you are not running with Administrator privileges. Following blogs discusses how to get around this issue,&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx" mce_href="http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx"&gt;http://blogs.msdn.com/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://kennyw.com/indigo/145"&gt;http://kennyw.com/indigo/145&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1440242" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category></item><item><title>Federation and Bearer Tokens</title><link>http://blogs.msdn.com/govindr/archive/2006/11/22/federation-and-bearer-tokens.aspx</link><pubDate>Wed, 22 Nov 2006 14:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1121881</guid><dc:creator>govindr</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1121881.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1121881</wfw:commentRss><description>&lt;P&gt;The latest &lt;A class="" href="http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-spec-cd-01.pdf" target=_blank mce_href="http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-spec-cd-01.pdf"&gt;WS-Trust spec&lt;/A&gt; (yet to be ratified by OASIS) introduces a concept called Bearer Tokens. This basically is a keyless token that a client requests from an STS (Security Token Service). The only purpose this token serves is to provide more information about the client to the service while the client already has a way to secure its conversation with the service. (Read my other post on &lt;a href="http://blogs.msdn.com/govindr/archive/2006/10/18/federation.aspx"&gt;Federation&lt;/a&gt; for more details on how client uses that key obtained from a STS token.) &lt;/P&gt;
&lt;P&gt;This introduces some qurikiness. The obtained issued token can now be added only as a supporting token. In case of transport secured messages this can just be a signed supporting tokens.&amp;nbsp;In messages level security scenarios, this token should be added as a signed encrypted supporting token.&amp;nbsp;Note, the client doesn't have a key so there is no need for the client to prove to the service that it did obtain the token for the STS and it does know some secret information of the token. So just adding the token as signed token in message level security will expose the token for a third party, who can just snoop the token and replay it to the service as if it is the client.&lt;/P&gt;
&lt;P&gt;Bearer tokens issued by a STS should be some how verifiale by the service. For this purpose the Bearer token should be signed by the STS. A SAML 1.1, SAML 2.0 or a custom token fits well for this purpose. WCF will require a wsu:Id to be on the issued token to be able to sign it (In message level security case). A SAML 1.1 does not have a wsu:Id on it and its attribute list is&amp;nbsp;not extendable&amp;nbsp;by the schema and hence it is not possible to use SAML 1.1 as bearer tokens in WCF with message level security. The only choices are SAML 2.0 or a custom token that contains a wsu:Id on it.&lt;/P&gt;
&lt;P&gt;The cool feature of Bearer tokens in my opinion is that it enables the client to get multiple such tokens from different STS and present all of it to the service. The service might need information from multiple sources to allow or deny permissions for a client and instead of doing multiple round trips the client can present all information to the service at once.&lt;/P&gt;
&lt;P&gt;WCF v1 does not support this token type and we might be adding support for this in the future. The idea behind this post is to explain the issues involved in using such tokens and how it plays with message level and transport level security. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1121881" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Message+Security/default.aspx">Message Security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/transport+security/default.aspx">transport security</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Security+Tokens/default.aspx">Security Tokens</category><category domain="http://blogs.msdn.com/govindr/archive/tags/SAML/default.aspx">SAML</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Federation/default.aspx">Federation</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category></item><item><title>.Net Framework 3.0 is Live!!</title><link>http://blogs.msdn.com/govindr/archive/2006/11/07/net-framework-3-0-is-live.aspx</link><pubDate>Wed, 08 Nov 2006 02:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1025685</guid><dc:creator>govindr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/govindr/comments/1025685.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=1025685</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Get the latest version of .Net Framework 3.0 at&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&amp;amp;displaylang=en href="http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&amp;amp;displaylang=en&lt;/A&gt; &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1025685" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.msdn.com/govindr/archive/tags/dotnet/default.aspx">dotnet</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category></item><item><title>Debugging WCF - Traces and Message Logs</title><link>http://blogs.msdn.com/govindr/archive/2006/11/01/debugging-wcf-traces-and-message-logs.aspx</link><pubDate>Thu, 02 Nov 2006 09:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:928393</guid><dc:creator>govindr</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/govindr/comments/928393.aspx</comments><wfw:commentRss>http://blogs.msdn.com/govindr/commentrss.aspx?PostID=928393</wfw:commentRss><description>&lt;P&gt;There has been enough posts on this topic. But&amp;nbsp;this topic&amp;nbsp;cannot be over emphasized. The best way to debug any WCF issue is to get a complete Message log and trace. We write tons of information to the trace that there is very little (if any) issues that traces cannot solve. Below is a config to generate Message logs and Traces in the Verbose level. The config will create a file e2eTraceTest.e2e in the directory where the config lives.&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: #999999 2.25pt double; PADDING-RIGHT: 0in; BORDER-TOP: #999999 2.25pt double; PADDING-LEFT: 0in; BACKGROUND: #f7f7f7; PADDING-BOTTOM: 0in; MARGIN-LEFT: 0.35in; BORDER-LEFT: #999999 2.25pt double; MARGIN-RIGHT: 0in; PADDING-TOP: 0in; BORDER-BOTTOM: #999999 2.25pt double"&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;&amp;lt;configuration&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;system.serviceModel&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;lt;diagnostics&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;messageLogging maxMessagesToLog="30000" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logEntireMessage="true" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logMessagesAtServiceLevel="true" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logMalformedMessages="true" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logMessagesAtTransportLevel="true"&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/messageLogging&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;lt;/diagnostics&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.serviceModel&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.diagnostics&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;lt;sources&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;source name="System.ServiceModel" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;                                 switchValue="Verbose, ActivityTracing" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;                                 propagateActivity="true" &amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;listeners&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&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;lt;add name="xml" /&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/listeners&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/source&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;source name="System.ServiceModel.MessageLogging" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;                                 switchValue="Verbose"&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;listeners&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&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;lt;add name="xml" /&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/listeners&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/source&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;lt;/sources&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;lt;sharedListeners&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="xml" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;                              type="System.Diagnostics.XmlWriterTraceListener" &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;                              initializeData="e2eTraceTest.e2e" /&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;lt;/sharedListeners&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&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;lt;trace autoflush="true" /&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.diagnostics&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE style="BACKGROUND: #f7f7f7; MARGIN-LEFT: 0in"&gt;&lt;FONT face="Lucida Console" color=#303030 size=1&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; COLOR: #303030"&gt; &amp;lt;/configuration&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=928393" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/govindr/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/govindr/archive/tags/dotnet/default.aspx">dotnet</category><category domain="http://blogs.msdn.com/govindr/archive/tags/webservices/default.aspx">webservices</category></item></channel></rss>