<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Hernan de Lahitte&amp;#39;s blog</title><subtitle type="html">.NET Development from the trenches</subtitle><id>http://weblogs.asp.net/hernandl/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/hernandl/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2005-08-16T19:06:00Z</updated><entry><title>EntLib 4.0 Policy Extensions for WSSF (Web Service Software Factory)</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2008/09/19/entlib-4-0-policy-extensions-for-wssf-web-service-software-factory.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2008/09/19/entlib-4-0-policy-extensions-for-wssf-web-service-software-factory.aspx</id><published>2008-09-19T17:40:00Z</published><updated>2008-09-19T17:40:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;If you are using &lt;A class="" title=WSSF href="http://weblogs.asp.net/controlpanel/blogs/www.codeplex.com/servicefactory" mce_href="http://weblogs.asp.net/controlpanel/blogs/www.codeplex.com/servicefactory"&gt;WSSF&lt;/A&gt; along with &lt;A class="" title=EntLib href="http://weblogs.asp.net/controlpanel/blogs/www.codeplex.com/entlib" mce_href="http://weblogs.asp.net/controlpanel/blogs/www.codeplex.com/entlib"&gt;EntLib&lt;/A&gt;, then you might what to check this out in the &lt;A class="" title="WSSF Contrib Project" href="http://codeplex.com/wssfcontrib" mce_href=" http://codeplex.com/wssfcontrib"&gt;WSSF Contrib Project site&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;As you will find on the documentation provided, along with some walkthroughs and samples, here are the brief description:&lt;/P&gt;
&lt;P mce_keep="true"&gt;The goal of these extensions is to simplify the task of integrating &lt;A class="" title=PIAB href="http://msdn.microsoft.com/en-us/library/cc309507.aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc309507.aspx"&gt;PIAB&lt;/A&gt; and WCF by providing the following features:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Design time support for applying policies to services.&lt;/LI&gt;
&lt;LI&gt;Generating a host config file pointing to an external EntLib configuration file.&lt;/LI&gt;
&lt;LI&gt;Implementing a WCF behavior that abstracts you from wrapping or creating objects using the PIAB factory (read: &lt;A class="" title="MSDN Article" href="http://msdn.microsoft.com/en-us/magazine/cc136759.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc136759.aspx"&gt;MSDN article&lt;/A&gt;). &lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;You can also download the latest version from &lt;A class="" title=here href="http://www.codeplex.com/wssfcontrib/Release/ProjectReleases.aspx?ReleaseId=17476" mce_href="http://www.codeplex.com/wssfcontrib/Release/ProjectReleases.aspx?ReleaseId=17476"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6634669" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Web Services" scheme="http://weblogs.asp.net/hernandl/archive/tags/Web+Services/default.aspx" /></entry><entry><title>Web Service Sofware Factory Contrib project is live</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2008/07/24/web-service-sofware-factory-contrib-project-is-live.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2008/07/24/web-service-sofware-factory-contrib-project-is-live.aspx</id><published>2008-07-24T14:05:00Z</published><updated>2008-07-24T14:05:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;The new &lt;A class="" title="contrib project" href="http://codeplex.com/wssfcontrib" mce_href="http://codeplex.com/wssfcontrib"&gt;contrib&amp;nbsp;project&lt;/A&gt; for &lt;A class="" title=WSSF href="http://www.codeplex.com/servicefactory" mce_href="http://www.codeplex.com/servicefactory"&gt;WSSF&lt;/A&gt; is out and with&amp;nbsp;some of the two most wanted contributions,&amp;nbsp;&amp;nbsp;&lt;SPAN class=CodePlexPageHeader id=ctl00_ctl00_Content_TabContentPanel_Content_TitleLabel&gt;&lt;A class="" title="Import WSDL Add-on" href="http://www.codeplex.com/wssfcontrib/Release/ProjectReleases.aspx?ReleaseId=15612" mce_href="http://www.codeplex.com/wssfcontrib/Release/ProjectReleases.aspx?ReleaseId=15612"&gt;Import WSDL Add-on&lt;/A&gt;&amp;nbsp;(for generating models from existing WSDL documents) and &lt;A class="" title="VB.NET support" href="http://www.codeplex.com/wssfcontrib/Release/ProjectReleases.aspx?ReleaseId=15611" mce_href="http://www.codeplex.com/wssfcontrib/Release/ProjectReleases.aspx?ReleaseId=15611"&gt;VB.NET support&lt;/A&gt;&amp;nbsp;(where &lt;A class=externalLink href="http://edwardbakker.nl/"&gt;Edward Bakker&lt;/A&gt;&amp;nbsp;extended the official February 2008 release to include VB.NET code generation templates and project types, very nice work indeed).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Take a look at the &lt;A class="" title="Service Factory Contrib project" href="http://codeplex.com/wssfcontrib" mce_href="http://codeplex.com/wssfcontrib"&gt;Service Factory Contrib project&lt;/A&gt;&amp;nbsp;and feel free to send new contributions.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6439483" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="WSSF" scheme="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx" /></entry><entry><title>Import WSDL for WSSF (Web Service Software Factory 2008)</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2008/06/27/import-wsdl-for-wssf-web-service-software-factory-2008.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2008/06/27/import-wsdl-for-wssf-web-service-software-factory-2008.aspx</id><published>2008-06-27T10:19:00Z</published><updated>2008-06-27T10:19:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;Updated (24-jul-2008)&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;We've just finished this new recipe for &lt;A class="" title="WSSF 2008 project" href="http://www.codeplex.com/servicefactory" mce_href="http://www.codeplex.com/servicefactory"&gt;WSSF 2008 project&lt;/A&gt;&amp;nbsp;which &lt;STRIKE&gt;will be published any time soon&lt;/STRIKE&gt; is in the &lt;A class="" title="WSSF Contribution site" href="http://www.codeplex.com/wssfcontrib" mce_href="http://www.codeplex.com/wssfcontrib"&gt;WSSF Contribution site&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;If you are eager to try this new feature, I uploaded the bits and installation doc &lt;A class="" title=here href="http://www.codeplex.com/wssfcontrib/Release/ProjectReleases.aspx?ReleaseId=15612" mce_href="http://www.codeplex.com/wssfcontrib/Release/ProjectReleases.aspx?ReleaseId=15612"&gt;here&lt;/A&gt;. &lt;STRIKE&gt;Note that I may also update this post with the final location of this bits once we get done the landing page&lt;/STRIKE&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Enjoy it!&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6326799" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author></entry><entry><title>Update TFS (Team Foundation Server) cached credentials in VS2008</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2008/06/26/update-tfs-team-foundation-server-cached-credentials-in-vs2008.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2008/06/26/update-tfs-team-foundation-server-cached-credentials-in-vs2008.aspx</id><published>2008-06-26T22:46:00Z</published><updated>2008-06-26T22:46:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Recently I came across this “issue” or at least something not so straightforward when I needed to use different credentials from a TFS client in Visual Studio 2008.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;I found out that you have to remove the cached credentials from your network password cache. In order to do that, you need to follow these steps:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;(Windows Vista) Navigate to: Control Panel\User Accounts\User Accounts (Classic View)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Select &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;on the left menu, “Manage your Network passwords”&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;3)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Look for an item named like “&amp;lt;dialup session&amp;gt;” in the “Stored User names and passwords” dialog&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;4)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Remove that entry with the “remove” button on the right.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;5)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Close all dialogs, open VS and try to connect to TFS. The credentials dialog will show up asking for credentials.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Hopefully we may expect something more “friendly” in the future for managing TFS access. &lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6324787" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author></entry><entry><title>Extending WSSF.ME - Part 1</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2008/03/28/extending-wssf-me-part-1.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2008/03/28/extending-wssf-me-part-1.aspx</id><published>2008-03-28T07:18:59Z</published><updated>2008-03-28T07:18:59Z</updated><content type="html">&lt;p&gt;One of the interesting aspects of having worked in the &lt;a href="http://msdn.microsoft.com/servicefactory"&gt;Web Service Software Factory: Modeling Edition For Visual Studio 2008&lt;/a&gt; project is the extensibility options that allows an organization or end developer to customize the tool to each needs. However, there some areas that were left open for customization or in some cases for further enhancements. I would like to start a series of post intended to cover these extensibility points or &amp;#8220;missing&amp;#8221; areas left for the user exercise like custom type pickers, VB support for code generation and importing existing contracts into the models (from WSDL or managed code).&lt;/p&gt;  &lt;p&gt;Notice that most of the typical extensibility scenarios that are already addressed by WSSF:ME can be found in the Extensibility Hands-on labs located in the &lt;a href="http://www.codeplex.com/servicefactory"&gt;Web Service Software Factory Community Workspace&lt;/a&gt; or in &lt;a href="http://www.ademiller.com/blogs"&gt;Ade&amp;#8217;s&lt;/a&gt; blog regarding &lt;a href="http://www.ademiller.com/blogs/tech/2007/11/service-factory-model-validation/"&gt;validation&lt;/a&gt; or &lt;a href="http://www.ademiller.com/blogs/tech/2007/11/adding-a-new-validation-rule-to-the-service-factory/"&gt;extending it&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;I Want My Types!&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Let&amp;#8217;s start with a simple example that will show how to let the type piker that shows up when you select the type property of a Data Contract or Service Contract Primitive Data or Message type like you see on the figure below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/hernandl/WindowsLiveWriter/ExtendingWSSF.MEPart1_415/clip_image002_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="187" alt="clip_image002" src="http://weblogs.asp.net/blogs/hernandl/WindowsLiveWriter/ExtendingWSSF.MEPart1_415/clip_image002_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now let&amp;#8217;s say you want to select a custom type or a non primitive type that is not included in the picker list. First let&amp;#8217;s say that this behavior is by design and as you might have guessed by the element names prefixed with &amp;#8220;Primitive&amp;#8221; they may only reference primitive types as the suggested guidance. However if for some reason you need to reference other type, you can simply follow the steps below and include any public type in the type picker dialog.&lt;/p&gt;  &lt;p&gt;1. Open the DataContractDsl project and replace all the occurrences of &amp;#8220;PublicPrimitiveTypeFilter&amp;#8221; with &amp;#8220;PublicTypeFilter&amp;#8221;. This way we use the base class of PublicPrimitiveTypeFilter that will simply let all public types show up in the list. Notice that you can create your own filter class following the same structure used in these classes.&lt;/p&gt;  &lt;p&gt;2. Repeat the same with ServiceContractvDsl project.&lt;/p&gt;  &lt;p&gt;3. Rebuild the solution.&lt;/p&gt;  &lt;p&gt;4. Test the result selecting a type and you should see the dialog below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/hernandl/WindowsLiveWriter/ExtendingWSSF.MEPart1_415/clip_image004_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="186" alt="clip_image004" src="http://weblogs.asp.net/blogs/hernandl/WindowsLiveWriter/ExtendingWSSF.MEPart1_415/clip_image004_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now you may add any public type regardless if it&amp;#8217;s a platform type or a custom one.&lt;/p&gt;  &lt;p&gt;Stay tuned for Part 2. &lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6039910" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author></entry><entry><title>Web Service Sofware Factory v2 (WCF+ASMX) is out</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2007/01/12/web-service-sofware-factory-v2-wcf-amp-asmx-is-out.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2007/01/12/web-service-sofware-factory-v2-wcf-amp-asmx-is-out.aspx</id><published>2007-01-12T19:51:00Z</published><updated>2007-01-12T19:51:00Z</updated><content type="html">&lt;p&gt;Check out the latest version of the WSSF for &lt;a href="http://wcf.netfx3.com/"&gt;Windows Communication Foundation&lt;/a&gt; (WCF) and ASMX &lt;a href="http://msdn.microsoft.com/servicefactory"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;In this version you will find plenty of new features along with other enhacements form previous versions like:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Designing ASMX and WCF messages and service interfaces (Tooling, WCF Guidance Package). &lt;/li&gt;&lt;li&gt;Applying exception shielding and exception handling (Reference Implementation and How To&amp;#39;s along with sample libraries). &lt;/li&gt;&lt;li&gt;Designing business entities in the domain model (Guidance). &lt;/li&gt;&lt;li&gt;Translating messages to and from business entities&amp;nbsp;(Tooling, WCF Guidance Package). &lt;/li&gt;&lt;li&gt;Designing, building, and invoking the data access layer (Tooling, WCF Data Access Guidance Package).. &lt;/li&gt;&lt;li&gt;Validating the conformance of service implementation, configuration, and security using code analysis (FxCop rules assembly for WCF). &lt;/li&gt;&lt;li&gt;Planning for the migration to WCF (Guidance). &lt;/li&gt;&lt;li&gt;Applying security to WCF services according to &lt;a href="http://msdn.microsoft.com/practices/topics/patterns/default.aspx?pull=/library/en-us/dnpag2/html/wssp.asp"&gt;Web Service Security&lt;/a&gt; (Tooling, WCF Security Guidance Package). &lt;/li&gt;&lt;li&gt;Applying message validation (Refenrece Implementation, How To&amp;#39;s and sample library). &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Enjoy it!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1395651" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="WSSF" scheme="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx" /></entry><entry><title>Web Service Sofware Factory in MSDN Magazine</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2006/11/17/web-service-sofware-factory-in-msdn-magazine.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2006/11/17/web-service-sofware-factory-in-msdn-magazine.aspx</id><published>2006-11-17T21:22:34Z</published><updated>2006-11-17T21:22:34Z</updated><content type="html">&lt;p&gt;Check out the &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/12/default.aspx"&gt;December 2006 issue&lt;/a&gt;&amp;nbsp;and read the article that &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/12/ServiceStation/default.aspx"&gt;Aaron Skonnard wrote&lt;/a&gt; about the ASMX version of &lt;a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/servicefactory.asp"&gt;this project&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Quoting the Summary section at the end,&lt;/p&gt; &lt;p&gt;&lt;em&gt;The Web Service Software Factory provides valuable guidance assets that help increase speed, quality, and consistency when developing Web service solutions. It includes useful written guidance and a complete reference application that illustrates the prescribed architecture, patterns, and practices in action. In addition, the Service Factory provides several guidance packages that automate many common development tasks.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;And I was told that an upcoming follow up article regarding the WCF version for next month or so. That will be great, assuming that we are about to deliver&amp;nbsp;this version (WCF) by mid december. If you are working with Web Services and WCF/ASMX you can't miss this&amp;nbsp;tool. :-)&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=951605" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="WSSF" scheme="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx" /></entry><entry><title>FxCop rules for securing WCF services</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2006/10/03/FxCop-rules-for-securing-WCF-services.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2006/10/03/FxCop-rules-for-securing-WCF-services.aspx</id><published>2006-10-04T05:46:00Z</published><updated>2006-10-04T05:46:00Z</updated><content type="html">One of the coolest features (IMHO) that you will find in the september CTP version of the Web Service Software Factory project, in particular related to the WCF Security Guidance Package, is the new WCF Security Code Analysis feature. This new feature is basically a set of custom FxCop rules that are plugged into Visual Studio Static Analysis feature and have a couple of interesting things....(&lt;a href="http://weblogs.asp.net/hernandl/archive/2006/10/03/FxCop-rules-for-securing-WCF-services.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=612859" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Security" scheme="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx" /><category term="GAT" scheme="http://weblogs.asp.net/hernandl/archive/tags/GAT/default.aspx" /><category term="WSSF" scheme="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx" /></entry><entry><title>WCF Security Guidance Package</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2006/05/13/wcf-security-guidance-package.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2006/05/13/wcf-security-guidance-package.aspx</id><published>2006-05-13T18:47:00Z</published><updated>2006-05-13T18:47:00Z</updated><content type="html">&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;After quit a long time of blogging silence and several months working in the redmondians “trenches”, I finally find some time to share my insights of &lt;a href="http://practices.gotdotnet.com/projects/svcfactory"&gt;this&lt;/a&gt; exciting project I’m currently collaborating.&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 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The May CTP of the &lt;a href="http://blogs.msdn.com/thehoggblog/archive/2006/04/13/576256.aspx"&gt;Web Service Software Factory&lt;/a&gt; (as described by &lt;a href="http://blogs.msdn.com/thehoggblog/rss.aspx"&gt;Jason&lt;/a&gt;) is out and ready for download in this &lt;a href="http://practices.gotdotnet.com/projects/svcfactory"&gt;workspace&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 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;So if you are planning a Web Service solution using &lt;a href="http://windowscommunication.net/"&gt;WCF&lt;/a&gt; (aka Indigo) and you (of course you should) need to be secure your services and have your clients talk with them using all the WCF infrastructure, then a very easy way to do this (hopefully) will be installing the Web Service Software Factory (WCF) Security Guidance Package and after a few wizard pages get your solution secured with the specified &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/WSSP.asp"&gt;security pattern for WCF&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 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;span style="mso-spacerun: yes"&gt;&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"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;I’ll get into further details on next posts.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=446339" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Security" scheme="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx" /><category term="WSSF" scheme="http://weblogs.asp.net/hernandl/archive/tags/WSSF/default.aspx" /></entry><entry><title>Patterns and Practices Security guru is blogging</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2005/12/11/jdblogging.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2005/12/11/jdblogging.aspx</id><published>2005-12-12T02:17:00Z</published><updated>2005-12-12T02:17:00Z</updated><content type="html">&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a href="http://blogs.msdn.com/jmeier/default.aspx"&gt;J.D. Meier&lt;/a&gt; is the Patterns &amp;amp; Practices security guru and is now blogging. You may have read some of his many articles and how to’s on &lt;a href="http://blogs.msdn.com/jmeier/archive/2005/09/26/473861.aspx"&gt;Security Guidance for .NET 2.0&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 class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;You will find that every of his posts follows the same level of insight and high quality of his articles. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Very interesting the posts on &lt;a href="http://blogs.msdn.com/jmeier/archive/2005/10/11/479490.aspx"&gt;Security Approaches that don’t work&lt;/a&gt; that describes a list of the typical ways that developers take on security in a project, and &lt;a href="http://blogs.msdn.com/jmeier/archive/2005/12/01/499078.aspx"&gt;What makes a good thread model&lt;/a&gt;, that complements the article &lt;a href="http://msdn.microsoft.com/library/en-us/dnpag2/html/tmwatemplatesample.asp"&gt;Template for a Web Application Thread Model&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 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Subscribed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432914" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Security" scheme="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx" /></entry><entry><title>Start a new Process as another user</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2005/12/02/startprocessasuser.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2005/12/02/startprocessasuser.aspx</id><published>2005-12-02T15:46:00Z</published><updated>2005-12-02T15:46:00Z</updated><content type="html">&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;On my last post &lt;A href="http://weblogs.asp.net/hernandl/archive/2005/11/21/usercredentialsdialog.aspx"&gt;User Credentials CommandDialog with SecureString password&lt;/a&gt; I showed an example on how to get the user credentials using a standard windows dialog and spawn a new process with those credentials. &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 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now let’s assume that you want to get the output/input/errors of that process from the standard streams (that is an interprocess communication channel) and therefore you set the required redirects property. Let’s say that you want to get the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx"&gt;output result from a process&lt;/a&gt; that executes a command line tool, so you will do something like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 548.6pt; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid silver .5pt" cellspacing="0" cellpadding="0" width="914" border="1"&gt; &lt;tbody&gt; &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt; &lt;td style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 548.6pt; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" valign="top" width="914"&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; 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; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;ProcessStartInfo&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; info = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;ProcessStartInfo&lt;/span&gt;(&lt;span style="COLOR: maroon"&gt;"notepad.exe"&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-no-proof: yes"&gt;info.UseShellExecute = &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-no-proof: yes"&gt;info.RedirectStandardOutput = &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-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p class="Para" style="MARGIN: 5pt 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The problem with the above code is that you need to redirect the three streams; otherwise you’ll receive an exception like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 548.6pt; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid silver .5pt" cellspacing="0" cellpadding="0" width="914" border="1"&gt; &lt;tbody&gt; &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt; &lt;td style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 548.6pt; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" valign="top" width="914"&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; 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; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;System.ComponentModel.Win32Exception: The handle is invalid.&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; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;So the code to start a new process with user credentials and standard stream redirection may look like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 548.6pt; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid silver .5pt" cellspacing="0" cellpadding="0" width="914" border="1"&gt; &lt;tbody&gt; &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt; &lt;td style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 548.6pt; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" valign="top" width="914"&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; 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; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;ProcessStartInfo&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; info = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;ProcessStartInfo&lt;/span&gt;(&lt;span style="COLOR: maroon"&gt;"cmd.exe"&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-no-proof: yes"&gt;info.UseShellExecute = &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-no-proof: yes"&gt;info.RedirectStandardInput = &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-no-proof: yes"&gt;info.RedirectStandardError = &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-no-proof: yes"&gt;info.RedirectStandardOutput = &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-no-proof: yes"&gt;info.UserName = dialog.User; &lt;span style="COLOR: green"&gt;// see the link mentioned at the top&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-no-proof: yes"&gt;info.Password = dialog.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; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; (&lt;span style="COLOR: teal"&gt;Process&lt;/span&gt; install = &lt;span style="COLOR: teal"&gt;Process&lt;/span&gt;.Start(info))&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-no-proof: yes"&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-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; output = install.StandardOutput.ReadToEnd();&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-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;install.WaitForExit();&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-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: green"&gt;// Do something with you output data&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-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: teal"&gt;Console&lt;/span&gt;.WriteLine(output);&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-no-proof: yes"&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; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Note: The Three-Redirect requirement is valid whenever these two conditions are met:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;span style="mso-list: Ignore"&gt;1)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Starting a new process with a different account than the parent process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;span style="mso-list: Ignore"&gt;2)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Your parent process is running inside a VS add-in or VS Test project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If you want further information about these scenarios, you may find it &lt;a href="http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=39ec1aa2-46e5-4cba-9ca3-7589f3e6fee9"&gt;here&lt;/a&gt; and &lt;a href="http://lab.msdn.microsoft.com/productfeedback/ViewFeedback.aspx?FeedbackID=cfc1063c-474f-42f3-90ca-cd7556e08ecc"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;This is the technical explanation given in one of these reported bugs.&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;em&gt;Specifying any one of&lt;br /&gt;&lt;/em&gt;RedirectStandardOutput=true, &lt;br /&gt;RedirectStandardError=true, or&lt;br /&gt;RedirectStandardInput=true&lt;br /&gt;&lt;em&gt;causes the process to be launched with STARTF_USESTDHANDLES (See the Win32 API CreateProcessWithLogon). This flag applies to all three handles, whether they are specified or not. If your process does not have any of these handles, then CreateProcessWithLogon will fail with "Invalid Handle".&lt;br /&gt;&lt;br /&gt;Console applications have StandardInput connected to the console keyboard by default. GUI processes do not have StandardInput handles by default, so you MUST redirect it (even if you don't intend to write anything to it).&lt;/em&gt;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/span&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432128" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Security" scheme="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx" /></entry><entry><title>User Credentials CommandDialog with SecureString password</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2005/11/21/usercredentialsdialog.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2005/11/21/usercredentialsdialog.aspx</id><published>2005-11-21T13:08:00Z</published><updated>2005-11-21T13:08:00Z</updated><content type="html">&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now that VS2005 and .NET 2.0 is on the street, I started to port some of my tools and projects from .NET 1.1. Since I was working on authentication in a Winform client application, one of the common scenarios is “credential gathering”. This is typically a dialog that asks the user credentials when logging on to the application or accessing some restricted area of it.&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;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;So I went back to get my UICredentialsHelper class in &lt;A href="http://sourceforge.net/projects/ncrypto/" mce_href="http://sourceforge.net/projects/ncrypto/"&gt;NCrypto&lt;/A&gt; project and not only ported to v2.0 but redesign it and added dome goodies as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;You can download the code from &lt;A class="" href="http://weblogs.asp.net/blogs/hernandl/UserCredentialsDialog.zip" mce_href="http://weblogs.asp.net/blogs/hernandl/UserCredentialsDialog.zip"&gt;here&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Let’s summarize its features:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;UL style="MARGIN-TOP: 0in" type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Shows up the standard Windows dialog for credential gathering (see &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/creduipromptforcredentials.asp" mce_href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/creduipromptforcredentials.asp"&gt;CredUIPromptForCredentials&lt;/A&gt; API).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Inherits from CommonDialog so it has a base standard API and IDE integration.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Return the sensitive information like the user password in a &lt;A href="http://blogs.msdn.com/shawnfa/archive/2004/05/27/143254.aspx" mce_href="http://blogs.msdn.com/shawnfa/archive/2004/05/27/143254.aspx"&gt;SecureString&lt;/A&gt; type.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Flexible to configure according to the features exposed by the CredUIPromptForCredentials API.&lt;/SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=StyleNormalWebVerdana10ptBold style="MARGIN: auto 0in"&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;Sample Usage&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Let’s see the basic usage of this dialog:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;TABLE class=MsoNormalTable style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 548.6pt; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid silver .5pt" cellSpacing=0 cellPadding=0 width=914 border=1 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 548.6pt; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=914&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp; &lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt; (&lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;CredentialsDialog&lt;/SPAN&gt;&lt;FONT color=#000000&gt; dialog = &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;CredentialsDialog&lt;/SPAN&gt;&lt;FONT color=#000000&gt;())&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;&lt;FONT color=#000000&gt; (dialog.ShowDialog() == &lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;DialogResult&lt;/SPAN&gt;&lt;FONT color=#000000&gt;.OK)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// validate credentials against an authentication authority&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// ...&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// If credentials are valid&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// and the user checked the "remember my password" option&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;&lt;FONT color=#000000&gt; (dialog.SaveChecked)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&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;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 3"&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; &lt;/SPAN&gt;dialog.ConfirmCredentials(&lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;&lt;FONT color=#000000&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&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;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt; 
&lt;P class=Para style="MARGIN: 5pt 0in 0pt"&gt;&lt;FONT face=Arial size=2&gt;The “dialog.ShowDialog()” function call will show up the following dialog:&lt;/FONT&gt;&lt;/P&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt; &lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id=_x0000_i1025 style="WIDTH: 228pt; HEIGHT: 213pt" type="#_x0000_t75"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/hernandl/CredDialog.jpg" mce_src="http://weblogs.asp.net/blogs/hernandl/CredDialog.jpg"&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;An interesting sample that you have included in the downloaded solution is the one that can run a process under the credentials account supplied.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Let’s see the sample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;TABLE class=MsoNormalTable style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 548.6pt; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid silver .5pt" cellSpacing=0 cellPadding=0 width=914 border=1 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0in; BORDER-LEFT: silver 1pt solid; WIDTH: 548.6pt; PADDING-TOP: 0in; BORDER-BOTTOM: silver 1pt solid; mso-border-alt: solid silver .5pt" vAlign=top width=914&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt; (&lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;CredentialsDialog&lt;/SPAN&gt;&lt;FONT color=#000000&gt; dialog = &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;CredentialsDialog&lt;/SPAN&gt;&lt;FONT color=#000000&gt;())&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;&lt;FONT color=#000000&gt; (dialog.ShowDialog() == &lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;DialogResult&lt;/SPAN&gt;&lt;FONT color=#000000&gt;.OK)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: teal"&gt;ProcessStartInfo&lt;/SPAN&gt;&lt;FONT color=#000000&gt; info = &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;ProcessStartInfo&lt;/SPAN&gt;&lt;FONT color=#000000&gt;(&lt;/FONT&gt;&lt;SPAN style="COLOR: maroon"&gt;"notepad.exe"&lt;/SPAN&gt;&lt;FONT color=#000000&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&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;info.UseShellExecute = &lt;/FONT&gt;&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;&lt;FONT color=#000000&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&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;info.UserName = dialog.User;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&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;info.Password = dialog.Password;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&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;info.Domain = dialog.Domain;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt;&lt;FONT color=#000000&gt; (&lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;Process&lt;/SPAN&gt;&lt;FONT color=#000000&gt; install = &lt;/FONT&gt;&lt;SPAN style="COLOR: teal"&gt;Process&lt;/SPAN&gt;&lt;FONT color=#000000&gt;.Start(info))&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&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;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 3"&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; &lt;/SPAN&gt;install.WaitForExit();&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 3"&gt;&lt;FONT color=#000000&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; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: teal"&gt;Console&lt;/SPAN&gt;&lt;FONT color=#000000&gt;.WriteLine(install.ExitCode);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&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;/FONT&gt;&lt;/SPAN&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-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/FONT&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-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;As you can see, is pretty straightforward to use this dialog and you even can customize its appearance like changing its caption, text message, banner bitmat or event setting the user textbox as read only.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Enjoy it!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=431057" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Security" scheme="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx" /></entry><entry><title>Permcalc tool and FullTrust issues</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2005/11/21/permcalcftissues.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2005/11/21/permcalcftissues.aspx</id><published>2005-11-21T12:15:00Z</published><updated>2005-11-21T12:15:00Z</updated><content type="html">&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;When I was performing a CAS analysis with the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms165077.aspx"&gt;PermCalc&lt;/a&gt; tool on some assemblies that I expected to run under a zone with constrained permissions like “Intranet”, I came across a couple of interesting issues with this very helpful tool.&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 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;There are two especially useful switches that have this command line tool. One is the “-&lt;a href="http://windowssdk.msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_fxtools/html/ff89f22e-2f5c-4e29-b6fc-5c488b262f91.asp"&gt;sandbox&lt;/a&gt;” switch, that reports the minimum permissions an application requires to run (so you can build a sandboxed environment, typically for ClickOnce applications). The other switch that helps to diagnose where permissions demands originated from is the “-stack” switch.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;So far so good, but let’s say that you run the tool with “-sandbox” and the result is (in my words) “Your assembly requires FullTrust permission”. Well that may imply that your assembly is calling some API or some BCL function that is demanding FullTrust or… you may‘ve got one or both of these two scenarios in your call stack.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="StyleNormalWebVerdana10ptBold" style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;font face="Verdana" size="2"&gt;Calling Assemblies without APTCA&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;You code may be calling an external referenced assembly that does not have the APTCA (Allow Partially Trusted Code Attribute) so any caller to this assembly should be a FullTrust caller. Assuming you want your application to run in a partially trusted environment, you first need to identify which is the non-APTC assembly that your application is calling, and then devise a strategy to circumvent this (redesign your app or use a sandbox pattern).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The point is that PermCalc could not get the “offending” non-APTCA assembly with the stacks switch, so a more manual analisys was required (run the tool with a modified assembly with a subset of classes and keep on adding more classes until you get the FullTrust requirement).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;I already reported this in the &lt;a href="http://lab.msdn.microsoft.com/ProductFeedback/viewfeedback.aspx?feedbackid=36502b2c-2888-4533-854d-32abc23937af"&gt;PFC&lt;/a&gt; if you want further details.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="StyleNormalWebVerdana10ptBold" style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;font face="Verdana" size="2"&gt;&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="StyleNormalWebVerdana10ptBold" style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;font face="Verdana" size="2"&gt;Classes with InheritanceDemand Permission&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Another non reported cause of FullTrust requirement for a sandbox analysis was the scenario where you have a base class decorated with the “InheritanceDemand” attribute. More details on this &lt;a href="http://lab.msdn.microsoft.com/ProductFeedback/viewfeedback.aspx?feedbackid=1c14dd7a-861a-4fa7-969d-1861e0bef776"&gt;here&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=431053" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Security" scheme="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx" /></entry><entry><title>WS-BAT or Project Batman</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2005/09/07/wsbat.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2005/09/07/wsbat.aspx</id><published>2005-09-07T14:15:00Z</published><updated>2005-09-07T14:15:00Z</updated><content type="html">&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this entry &lt;a href='http://clariusconsulting.net/blogs/hdl/archive/2005/09/07/wsbat.aspx' alt='New location at Clarius' title='New location at Clarius'&gt;has moved&lt;/a&gt;.&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now working on the next “Baseline Architecture” wave of projects that will start launching on the next months, the &lt;a href="http://blogs.msdn.com/donsmith/archive/2005/09/02/460345.aspx"&gt;WS-BAT&lt;/a&gt; or the codenamed “&lt;a href="http://blogs.msdn.com/beatsch/archive/2005/09/06/461360.aspx"&gt;Batman&lt;/a&gt;” project is one of the commented projects.&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 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Let’s review some of these “acronyms”:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;WS-BAT: (As defined by Jason Hogg)&lt;span style="mso-spacerun: yes"&gt;&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 0.5in; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;W&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;eb &lt;b style="mso-bidi-font-weight: normal"&gt;S&lt;/b&gt;ervices &lt;b style="mso-bidi-font-weight: normal"&gt;B&lt;/b&gt;aseline &lt;b style="mso-bidi-font-weight: normal"&gt;A&lt;/b&gt;rchitecture &lt;b style="mso-bidi-font-weight: normal"&gt;T&lt;/b&gt;oolkit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Baseline Architecture: (As defined by &lt;span style="COLOR: black"&gt;&lt;a href="http://blogs.msdn.com/wojtek/"&gt;Wojtek Kozaczynski&lt;/a&gt;&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 0.5in; mso-layout-grid-align: none"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Baseline architecture is a collection of patterns, software elements and service, and practices that embody the architect's key design decisions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;To baseline (a verb) application architecture is to decide on the structural and behavioral foundation of the application and provide clear guidance for how to develop the application on that foundation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;And the project’s codename “BATMAN”: (As defined by Jason Hogg)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;B&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;aseline &lt;b style="mso-bidi-font-weight: normal"&gt;A&lt;/b&gt;rchitecture &lt;b style="mso-bidi-font-weight: normal"&gt;T&lt;/b&gt;oolkit for &lt;b style="mso-bidi-font-weight: normal"&gt;M&lt;/b&gt;anaging &lt;b style="mso-bidi-font-weight: normal"&gt;A&lt;/b&gt;rchitectural &lt;b style="mso-bidi-font-weight: normal"&gt;N&lt;/b&gt;uances of Web Services.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;In summary, the BAT will provide these assets along with the current (Tools/Technologies)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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 0.5in; TEXT-INDENT: -0.25in; mso-pagination: none; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;span style="mso-list: Ignore"&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;A suggested VS solution structure for implementing a service application&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;(based on Contract First Development – see &lt;span style="COLOR: black"&gt;&lt;a title="" href="http://www.thinktecture.com/WSCF/"&gt;WSCF&lt;/a&gt;)&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 0.5in; TEXT-INDENT: -0.25in; mso-pagination: none; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;span style="mso-list: Ignore"&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;A set of guidance on how to develop a service with the above structure. (Expect to see different WS endpoints sample implementations like, asmx, Indigo, etc.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-pagination: none; mso-layout-grid-align: none; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana"&gt;&lt;span style="mso-list: Ignore"&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;A set of guidance tools (see &lt;A href="http://weblogs.asp.net/hernandl/archive/2005/05/15/unleashGatCabPower.aspx"&gt;GAT&lt;/a&gt;) for helping developers to build the suggested solution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;As an added benefit, this solution will be aligned with the &lt;a href="http://practices.gotdotnet.com/projects/sopatterns"&gt;Web Services Security Patterns&lt;/a&gt; as well as the guidance automation tools for implementing these security patterns (I love this part &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The first glimpse of this project will be at the &lt;a href="http://msdn.microsoft.com/events/pdc/"&gt;PDC&lt;/a&gt; in the &lt;a href="http://blogs.msdn.com/beatsch/archive/2005/09/01/458993.aspx"&gt;Patterns &amp;amp; Practices Agenda&lt;/a&gt; sessions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Expect to read more on this project on some the &lt;a href="http://blogs.msdn.com/donsmith/archive/2005/09/02/460345.aspx"&gt;team&lt;/a&gt; member’s blogs. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=424603" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Architecture" scheme="http://weblogs.asp.net/hernandl/archive/tags/Architecture/default.aspx" /></entry><entry><title>Bookmark these Security links from Patterns &amp; Practices</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/hernandl/archive/2005/08/16/securitylinks.aspx" /><id>http://weblogs.asp.net/hernandl/archive/2005/08/16/securitylinks.aspx</id><published>2005-08-17T02:06:00Z</published><updated>2005-08-17T02:06:00Z</updated><content type="html">&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this entry &lt;a href='http://clariusconsulting.net/blogs/hdl/archive/2005/08/16/securitylinks.aspx' alt='New location at Clarius' title='New location at Clarius'&gt;has moved&lt;/a&gt;.&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;This is an awesome collection of security links for your toolbox.&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 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If you already know the theory &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/paght000012.asp"&gt;about engineering for security&lt;/a&gt;, then you may go straight to the meat and check it out these cool &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/SecurityHowTosIndex.asp"&gt;How Tos&lt;/a&gt; (for .NET v1.1 and .NET v2.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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;And if you are working with Service Orientation and still wondering how to nail down the right security pattern, do not miss &lt;a href="http://practices.gotdotnet.com/workspace.aspx?id=67f659f6-9457-4860-80ff-0535dffed5e6"&gt;this&lt;/a&gt; workspace. &lt;span style="mso-spacerun: yes"&gt;&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;So summarizing;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Theory:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/paght000012.asp"&gt;Security Guidance For Applications&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 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Practice:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/SecurityHowTosIndex.asp"&gt;Security How Tos&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 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&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-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Service Orientation:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a href="http://practices.gotdotnet.com/workspace.aspx?id=67f659f6-9457-4860-80ff-0535dffed5e6"&gt;Service Orientation Patterns&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=422784" width="1" height="1"&gt;</content><author><name>HernanDL</name><uri>http://weblogs.asp.net/members/HernanDL.aspx</uri></author><category term="Security" scheme="http://weblogs.asp.net/hernandl/archive/tags/Security/default.aspx" /></entry></feed>