<?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>Security Tools</title><link>http://blogs.msdn.com/securitytools/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>The CAT.NET 2.0 Configuration Analysis Engine</title><link>http://blogs.msdn.com/securitytools/archive/2009/12/01/the-cat-net-2-0-configuration-analysis-engine.aspx</link><pubDate>Tue, 01 Dec 2009 19:41:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9931024</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9931024.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9931024</wfw:commentRss><description>&lt;p&gt;Maqbool Malik here…&lt;/p&gt;  &lt;p&gt;One of the most significant update to CAT.NET in v2.0 is the addition of a configuration engine. The goal of the engine is to identify insecure configuration at all layers of the application (configuration files, code level configuration, etc.) which should be remediated prior to deployment on a production environment. The engine is highly configurable which enables an organization to tweak the default security baseline (out of the box implementation) to cater to their own security needs by making it more stringent or relaxed. The engine is shipped with a default set of thirty three rules which can be easily tweaked due to their XML structure and more rules can be easily added by adding additional XML files in the \Rules\ConfigurationRules directory. Take a look at any XML file in this directory to get familiar with the XML structure to understand how to author additional rules. &lt;/p&gt;  &lt;p&gt;Another important class of configuration settings is those that are omitted in the configuration file for which the defaults are considered insecure. An example is the Role Manager cookieRequireSSL attribute for which the default settings is false, meaning that SSL is not required to return the role names cookie to the server. This class of insecure configurations will also be identified by the Engine, although the current version supports only XML tags and not attributes. &lt;/p&gt;  &lt;p&gt;Highly Configurable   &lt;br /&gt;Let’s walk through an example to understand the flexibility and configurability provided by the Engine. Consider the CustomErrorConfRule.xml file below which ships with CAT.NET:&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;Line Number               &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;1&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;2&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;ConfigurationRule xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; typeName=&amp;quot;Microsoft.InformationSecurity.CodeAnalysis.Engines.RulesModel.ConfigurationRule, Microsoft.InformationSecurity.CodeAnalysis.Engines.RulesModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b9ded31be328441b&amp;quot; enabled=&amp;quot;true&amp;quot; comparisionType=&amp;quot;AttributeCheck&amp;quot; isAndConditions=&amp;quot;false&amp;quot;&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;3&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Information cultureName=&amp;quot;en-US&amp;quot;&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;4&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Category&amp;gt;Web Security&amp;lt;/Category&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;5&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Certainity&amp;gt;50&amp;lt;/Certainity&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;6&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Description&amp;gt;Custom error is not turned on which can lead to information disclosure&amp;lt;/Description&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;7&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Email&amp;gt;&amp;lt;/Email&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;8&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Name&amp;gt;Custom Error is set to off or remote only&amp;lt;/Name&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;9&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Owner&amp;gt;&amp;lt;/Owner&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;10&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Resolution&amp;gt;Set mode attribute to On &amp;lt;/Resolution&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;11&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;RuleId&amp;gt;WEBCONFSEC01&amp;lt;/RuleId&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;12&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;SeverityLevel&amp;gt;High&amp;lt;/SeverityLevel&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;13&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Url&amp;gt;&amp;lt;/Url&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;14&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Problem&amp;gt;Mode attribute is set to Off or RemoteOnly&amp;lt;/Problem&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;15&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;/Information&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;16&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Conditions&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;17&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Condition conditionId=&amp;quot;4E9F86AD-B000-44C2-A207-0F60686AEE2D&amp;quot; configurationPath=&amp;quot;/configuration/system.web/customErrors&amp;quot; attributeName=&amp;quot;mode&amp;quot; attributeValue=&amp;quot;Off&amp;quot; comparisionOperator=&amp;quot;Equals&amp;quot; /&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;18&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;Condition conditionId=&amp;quot;946446DF-3C83-4B72-9C07-18A8E3DAD7E6&amp;quot; configurationPath=&amp;quot;/configuration/system.web/customErrors&amp;quot; attributeName=&amp;quot;mode&amp;quot; attributeValue=&amp;quot;RemoteOnly&amp;quot; comparisionOperator=&amp;quot;Equals&amp;quot; /&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;19&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;/Conditions&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="103"&gt;           &lt;p&gt;&lt;b&gt;20&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="775"&gt;           &lt;p&gt;&amp;lt;/ConfigurationRule&amp;gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;The first important attribute is on line 2 called “enabled”, this indicates whether the rule will be applied by the Engine. If you would like to turn off a rule, simply change the value of this attribute to “false”. &lt;/p&gt;  &lt;p&gt;The second important attribute on line 2 is called “isAndConditions” which describes how conditions defined on lines 17 and 18 will be applied. Since it is currently set to false which implies that OR logic will be applied, meaning that if any of the conditions match listed on lines 17 and 18, the rule will match. In this particular case, the Engine will highlight cases where custom error mode is set to “Off” or “RemoteOnly”. &lt;/p&gt;  &lt;p&gt;Sometimes it may be necessary for all conditions to be true in order for the rule to match; an example is the Authorization Deny tag. The conditions for such a rule may be as follows:&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="878"&gt;           &lt;p&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;b&gt;Condition&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;conditionId&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;80299E97-82BA-4ED1-8D29-FA22F0B34697&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;configurationPath&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;/configuration/system.web/authorization/deny&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;attributeName&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;users&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;attributeValue&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;*&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;comparisionOperator&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;Not,Equals&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;/&amp;gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt; &lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="878"&gt;           &lt;p&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;b&gt;Condition&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;conditionId&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;1E8A5337-9C1C-4038-B359-DEF75FD92D25&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;configurationPath&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;/configuration/system.web/authorization/deny&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;attributeName&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;users&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;attributeValue&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;?&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;comparisionOperator&lt;/b&gt;&lt;b&gt;=&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;Not,Equals&lt;/b&gt;&lt;b&gt;&amp;quot;&lt;/b&gt;&lt;b&gt;/&amp;gt;&lt;/b&gt; &lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Thus, the rule will only match when both conditions are true, in this case the Authorization Deny tag’s users attribute is not set to either of the values “*” and “?”. The conditionId attribute is simply a GUID that can be used by the consumer to uniquely track this issue via a bug tracking system. &lt;/p&gt;  &lt;p&gt;Although in the above example the “Not Equals” comparison operator was used, many others are also supported by the Engine. These include: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Equivalency (comparisionOperator=“ Equals”) &lt;/li&gt;    &lt;li&gt;Not Equivalent (comparisionOperator=“Not,Equals”) &lt;/li&gt;    &lt;li&gt;Greater Than (comparisionOperator=”GreaterThan”) &lt;/li&gt;    &lt;li&gt;Less Than (comparisionOperator=”LessThan”) &lt;/li&gt;    &lt;li&gt;Existential (comparisionOperator=”Exists”) &lt;/li&gt;    &lt;li&gt;Not Exists (comparisionOperator=”Not,Exists”) &lt;/li&gt;    &lt;li&gt;Contains which allows keyword searches (comparisionOperator=”Contains”) &lt;/li&gt;    &lt;li&gt;Not Contains (comparisionOperator=”Not,Contains”) &lt;/li&gt;    &lt;li&gt;These operators can be used in conjunction with conditions and logical operators (AND/OR) to construct complex configuration rules. Happy Authoring!     &lt;br /&gt;Features on the horizon &lt;/li&gt;    &lt;li&gt;The Configuration Engine is being improved to include additional rules, the set will likely increase to 50+ rules in the next release. &lt;/li&gt;    &lt;li&gt;Code level configuration will also be analyzed and insecure settings will be reported. (I.E. Page level settings &amp;lt;%@ Page attribute=&amp;quot;value&amp;quot; [attribute=&amp;quot;value&amp;quot;...] %&amp;gt;) &lt;/li&gt;    &lt;li&gt;The ability to check for absence of XML attributes for which the defaults are considered insecure. (The current version is able to check for absence of tags but not XML attributes)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope this helps….&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9931024" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Anti-XSS/default.aspx">Anti-XSS</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Information+Security+Tools/default.aspx">Information Security Tools</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/CAT.NET/default.aspx">CAT.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Software+Testing/default.aspx">Software Testing</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Secure+Coding/default.aspx">Secure Coding</category></item><item><title>How to Configure WPL v1.0 SRE</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/18/how-to-configure-wpl-v1-0-sre.aspx</link><pubDate>Wed, 18 Nov 2009 01:12:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9924002</guid><dc:creator>cisg</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9924002.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9924002</wfw:commentRss><description>&lt;p&gt;RV here...&lt;/p&gt;  &lt;p&gt;With the release of Web Protection Library v1.0 (WPL) Security Runtime Engine (SRE) has been significantly updated. It now includes a SQL Injection Detection module which can detect certain attack vectors. It also include re-designed configuration editor which enables you to easily configure SRE. The following easy steps let you configure your application to use SRE. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1 : Edit Configuration&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;First step is to configure your application web.config file to enable SRE modules. Star the configuration editor by going to Start –&amp;gt; All Programs –&amp;gt; Microsoft Information Security –&amp;gt; Web Protection Library v1.0 and clicking on SRE Configuration Editor shortcut. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoconfigureWPLv1.0SRE_DA43/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoconfigureWPLv1.0SRE_DA43/image_thumb.png" width="500" height="407" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The left side tree includes list of processors configured in the current config file. By default a blank web.config with all processors are loaded in the editor. Click on File –&amp;gt; Open to open an existing web.config file to add the processors. The configuration tree would be empty. Right Click on the “Configuration” node in the tree and select “New –&amp;gt; Cross Site Scripting Protection Module” to add XSS protection module to the application. Similarly, add the “SQL Injection Partial Protection Module” to the configuration node. Click on the save icon or select File –&amp;gt; Save to save the configuration. The following sections are added to the configuration file.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;configSection/section nodes for defining processor configurations &lt;/li&gt;    &lt;li&gt;httpModules/add for enabling the modules &lt;/li&gt;    &lt;li&gt;processor configuration sections &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Step2 : Copy SRE Binaries&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Once the configuration is in place, ASP.NET will now try to resolve the httpModules defined in the configuration. In case of 64-bit windows Go to %ProgramFiles(x86)%\Microsoft Information Security\Web Protection Library v1.0\SecurityRuntimeEngine or 32-bit Windows go to %ProgramFiles%\Microsoft Information Security\Web Protection Library v1.0\SecurityRuntimeEngine directory and copy all the .dll files to \bin folder of your application. Here is a brief description of files found in this directory.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoconfigureWPLv1.0SRE_DA43/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoconfigureWPLv1.0SRE_DA43/image_thumb_1.png" width="300" height="282" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Don’t copy the SqlLibInstaller.msi as this is going to install the SQL Parser libraries on the machine.&lt;/p&gt;  &lt;p&gt;Step 3: Test&lt;/p&gt;  &lt;p&gt;Once you copy the binaries, SRE should automatically encode the controls being rendered on the page. It should also detect an SQL Injection Attempts as shown below. In case of XSS attack, inputs are automatically encoded by the Anti-XSS processor.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoconfigureWPLv1.0SRE_DA43/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoconfigureWPLv1.0SRE_DA43/image_thumb_2.png" width="500" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Similarly following exception is thrown when SQL queries are detected in the input.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoconfigureWPLv1.0SRE_DA43/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoconfigureWPLv1.0SRE_DA43/image_thumb_3.png" width="500" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can handle this exception with custom errors page and provide generic information to the user. As we release new processors in WPL, we will continue to update the blog site with more how to information.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9924002" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Anti-XSS/default.aspx">Anti-XSS</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Information+Security+Tools/default.aspx">Information Security Tools</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Software+Testing/default.aspx">Software Testing</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/WPL/default.aspx">WPL</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Secure+Coding/default.aspx">Secure Coding</category></item><item><title>How to Run CAT.NET 2.0 CTP</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/12/how-to-run-cat-net-2-0-ctp.aspx</link><pubDate>Thu, 12 Nov 2009 22:54:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921616</guid><dc:creator>cisg</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9921616.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9921616</wfw:commentRss><description>&lt;p&gt;RV here...&lt;/p&gt;  &lt;p&gt;With the new build of CAT.NET available on &lt;a href="https://connect.microsoft.com/SelfNomination.aspx?ProgramID=2765&amp;amp;pageType=1&amp;amp;SiteID=734"&gt;connect.microsoft.com&lt;/a&gt; you must have noticed that the new version includes only a command line tool. We we will be releasing the Visual Studio rules as part of Beta1 release. So lets look at how we can use the command line version to analyze binaries and configuration files for insecure configuration.&lt;/p&gt;  &lt;p&gt;After the installation click on Windows Start Menu and go to All Programs –&amp;gt; Microsoft Information Security –&amp;gt; Code Analysis for .NET (CAT.NET) v2.0 and select CAT.NET v2.0 Command Prompt. This will launch a command window and display all the command line options as shown below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoRunCAT.NETv2.0CTP_114AB/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoRunCAT.NETv2.0CTP_114AB/image_thumb.png" width="500" height="412" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you notice /file and /configdir are both required switches which are path to binary file and path to directory with .config files respectively. Optionally /report and /reportxsloutput are paths to report.xml and report.htm files which are outputs from cat.net analysis. Here is a sample command that runs the analysis on the sample application that is part of Anti-XSS distribution that identifies Cross Site Scripting vulnerabilities and some insecure configuration in web.config. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;CATNetCmd.exe /file:&amp;quot;c:\AntiXss\Sample Application\bin\SampleApp.dll&amp;quot; /configdir:&amp;quot;C:\AntiXss\Sample Application&amp;quot; /report:&amp;quot;C:\AntiXss\SampleAppReport.xml&amp;quot; /reportxsloutput:&amp;quot;C:\AntiXss\Sample AppReport.htm&amp;quot;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In essence you should be using /file, /configdir, report and /reportxsloutput for your analysis. There are total 40 rules loaded by the engine which includes 33 config rules and 7 data flow rules. Generated report includes targets, time taken for analysis, summary of violations and violations details. Here is the report generated by the above sample command.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoRunCAT.NETv2.0CTP_114AB/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoRunCAT.NETv2.0CTP_114AB/image_thumb_2.png" width="500" height="759" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Configuration issues provide line&amp;#160; numbers and violation xml in the report. Similarly data flow analysis rules provide the entry point and additional data to identify where the error is occurring. These will be dramatically improved in Beta1 to provide more detailed information on where violation has occurred and specific data flow paths in case of data flow rules. Keep checking our blog site for more information on CAT.NET tool.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921616" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Information+Security+Tools/default.aspx">Information Security Tools</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/CAT.NET/default.aspx">CAT.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Secure+Coding/default.aspx">Secure Coding</category></item><item><title>WPL at SecurityBytes in India</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/11/wpl-at-securitybytes-in-india.aspx</link><pubDate>Wed, 11 Nov 2009 07:05:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9920646</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9920646.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9920646</wfw:commentRss><description>&lt;p&gt;If you want to come hear Anil Chintala (one of the developers on Anti-XSS) speak about the new WPL you can catch him at the OWASP / SecurityBytes conference in New Delhi later this week.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.securitybyte.org/" href="http://www.securitybyte.org/"&gt;http://www.securitybyte.org/&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It’s being opened by the former President of India!!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/WPLatSecurityBytesinIndia_144B2/Profile.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="Profile" border="0" alt="Profile" align="left" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/WPLatSecurityBytesinIndia_144B2/Profile_thumb.jpg" width="124" height="172" /&gt;&lt;/a&gt; Anil Chintala currently works for Information Security Tools team in Microsoft as Senior SDE where he is responsible for building security tools and security management applications. He has worked on security tools such as Anti-XSS Library. Anil currently focuses on building Connected Information Security Framework (CISF) to integrate all the security management applications supporting Information Security program at Microsoft. Solving information security problems and writing secure code are his passion.&lt;/p&gt;  &lt;p&gt;Anil holds a bachelors degree in Mechanical Engineering. He has over ten years of experience and expertise in building applications using Java and Microsoft/.NET technologies where he has led architecture, design and development of various enterprise applications for large software services, technology and consulting companies. He enjoys playing tennis, video games and watching football.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920646" width="1" height="1"&gt;</description></item><item><title>Some New Software Security Tools for Web Developers – (CTP Releases)</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/11/some-new-software-security-tools-for-web-developers-ctp-releases.aspx</link><pubDate>Wed, 11 Nov 2009 06:56:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9920642</guid><dc:creator>cisg</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9920642.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9920642</wfw:commentRss><description>&lt;p&gt;Curphey here…..(follow me on Twitter &lt;a href="http://www.twitter.com/curphey" target="_blank"&gt;@curphey&lt;/a&gt; if you want the breaking news!)&lt;/p&gt;  &lt;p&gt;My wife keeps telling me I work too much. Maybe I do, maybe I don’t but if I do I am not alone. Some folks on my team have been doing some super-human stuff and we are ready to share some early preview releases with y’all. Let’s call this Anti-patch Tuesday&amp;#160; (assuming I get to post this before mid-night tonight)!&lt;/p&gt;  &lt;p&gt;In this little package we have;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;CAT.NET 2.0 CTP &lt;/li&gt;    &lt;li&gt;WACA 1.0 CTP &lt;/li&gt;    &lt;li&gt;WPL 1.0 CTP &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Watch our recent video “&lt;a href="http://channel9.msdn.com/posts/Jossie/Assessment-and-Protection-Suite/" target="_blank"&gt;Assessment and Protection Suite&lt;/a&gt;,” where RV and I discuss the future of these tools.&lt;/p&gt;  &lt;p&gt;CAT.NET 2.0 CTP – CAT.NET is being re-written from the ground up. The original tainted data analysis algorithm has now been ported to the Phoenix compiler infrastructure, along with a shiny new configuration rules engine that look in the *.config for common security mis-configurations.&amp;#160; This CTP is a command line only single-pass data flow engine and configuration rules engine. Over the coming few month or so we will work to scale the core engine and fully integrate the tool into the Code Analysis menu of Visual Studio 2010. When Visual Studio 2010 ship the tool will be released as a power Tool free to licensed users of Visual Studio. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/SomeNewSoftwareSecurityToolsforWebDevelo_1425A/WACALaunchpad_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="WACALaunchpad" border="0" alt="WACALaunchpad" align="right" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/SomeNewSoftwareSecurityToolsforWebDevelo_1425A/WACALaunchpad_thumb.png" width="328" height="247" /&gt;&lt;/a&gt;WACA 1.0 CTP – Web Application Configuration Analyzer – WACA is built on the Best Practice analyzers and shares the same configuration setting rules as CAT.NET 2.0.&amp;#160; WACA is designed to scan your development environment against best practices for .NET security configuration, IIS settings, SQL Server Security best practices and some Windows permission settings. It includes &lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Over 100 security rules in total (many more in the final release) &lt;/li&gt;      &lt;li&gt;IIS Security Configuration &lt;/li&gt;      &lt;li&gt;.NET Framework Security Configuration &lt;/li&gt;      &lt;li&gt;SQL Server Security Configuration &lt;/li&gt;      &lt;li&gt;Windows Permissions &lt;/li&gt;      &lt;li&gt;Generate HTML based report, export results to Excel and export findings as work items to TFS (“Curpheys Favorite Feature tm” ) &lt;/li&gt;      &lt;li&gt;Scan a machine remotely (Requires WMI and Remote Registry) &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;If you think of rules you would like to see you can always let us know via the Connect site. No promises but we will promise to consider them all. &lt;/p&gt;  &lt;p&gt;WPL 1.0 CTP – Web Protection Library – For a while we have been building and shipping the Anti-XSS library and have been working on broader mitigations for common web application security issues beyond XSS. The WPL will act as an umbrella for several libraries and runtime modules including Anti-XSS that provide coverage for issues such as SQL Injection and CSRF as well as enforcing security settings such as SSL and HTTP_ONLY cookies. We have worked hard to make the developer experience similar to that of EntLib with a configuration utility that runs inside of Visual Studio. We expect a first release of WPL early in 2010. This CTP includes the SQL Injection protection module. Using the Security Runtime Engine you can now install the technology on your IIS servers and provide reasonable runtime protection against XSS and SQLi without any code changes. We know that it won’t catch everything but testing and experience has shown it provides a solid level of coverage against many scenarios found in the real world. Get more details on WPL in a recent video, “&lt;a href="http://channel9.msdn.com/posts/Jossie/Enhanced-Web-Protection-Library/" target="_blank"&gt;Enhanced Web Protection Library&lt;/a&gt;” where RV talks about the expansion of what used to be the Anti-XSS Library.&lt;/p&gt;  &lt;p&gt;To download these tools for free you will need to register on our Connect site. This helps us track the number of downloads and Connect provides a way for you to submit CR’s and bugs directly to the development team. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a title="https://connect.microsoft.com/site/sitehome.aspx?SiteID=734" href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=734"&gt;https://connect.microsoft.com/site/sitehome.aspx?SiteID=734&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When you are registered for our program at Connect you can download the tools directly&lt;/p&gt;  &lt;p&gt;&lt;a href="https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=734&amp;amp;DownloadID=23328"&gt;https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=734&amp;amp;DownloadID=23328&lt;/a&gt; – CAT.NET 2.0 CTP&lt;/p&gt;  &lt;p&gt;&lt;a href="https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=734&amp;amp;DownloadID=23329"&gt;https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=734&amp;amp;DownloadID=23329&lt;/a&gt; – WPL 1.0 CTP&lt;/p&gt;  &lt;p&gt;&lt;a href="https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=734&amp;amp;DownloadID=23330"&gt;https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=734&amp;amp;DownloadID=23330&lt;/a&gt; – WACA 1.0 CTP&lt;/p&gt;  &lt;p&gt;We hope you enjoy the tools as much as we enjoy creating them. If you use them please let us know. Buy us beer at conferences (indeed invite us to speak at your security conferences and then buy us beer), send us “cube toys” and trinkets to put in our offices or just tell us how much you like our work in the comments section ;-)&lt;/p&gt;  &lt;p&gt;- Curphey&lt;/p&gt;  &lt;p&gt;PS – To my super-human team - Just cause I am sometimes grumpy doesn’t mean I am not in awe of your amazing work. I just get beaten too often on the foos-ball table to be happy all day! You all know who you are, I am super proud and honored to work with y’all. Now go get some sleep before the next sprints start!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920642" width="1" height="1"&gt;</description></item><item><title>Forefront Identity Manager 2010 (FIM 2010) Data Cache</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/09/forefront-identity-manager-2010-fim-2010-data-cache.aspx</link><pubDate>Mon, 09 Nov 2009 16:12:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919592</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9919592.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9919592</wfw:commentRss><description>&lt;p&gt;Hi, Syam Pinnaka here. I am a Sr. SDE on the Information Security Tools Team. In one of the recent projects there is a requirement to build an audit trail of “Group” object related activities in Forefront Identity Manager 2010 (FIM 2010). FIM provides a WCF interface to program against it but building audit trail is not obvious at first look. In this blog post I will try explain how to program against FIM 2010 and also how to build audit trail of “Group” object related activities in FIM 2010.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Programming against Forefront Identity Manager 2010:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;FIM provides an API in terms of a set of WCF end points to program against FIM objects. These FIM WCF endpoints are extensions to WS-* in order to enhance usability of these WCF endpoints by the client applications. One of the endpoint is “Enumeration Endpoint” using which we can query FIM objects. Queries can be constructed using “XPath Filter Dialect”. Enumeration Endpoint returns the FIM objects in xml serialized format. &lt;/p&gt;  &lt;p&gt;More details about programming against FIM using WCF services can be found here. &lt;a href="http://msdn.microsoft.com/en-us/library/ee652298(VS.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/ee652298(VS.100).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Caching audit trail of activities on a FIM “Group” object:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;All the requests made by different users in FIM are captured and stored as “Request” objects. Each request object contains the information about who made the request, request status indicating whether it’s a successful/failed request and some additional information required to change the state of targeted object. This additional information is passes and stored as “RequestParameter” in xml format. A sample request parameter XML for a create request looks like this.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&amp;lt;RequestParameter xmlns:xsi=&amp;quot;&lt;a href="http://www.w3.org/2001/XMLSchema-instance"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xmlns:xsd=&amp;quot;&lt;a href="http://www.w3.org/2001/XMLSchema"&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot; xsi:type=&amp;quot;CreateRequestParameter&amp;quot;&amp;gt;&amp;lt;Calculated&amp;gt;false&amp;lt;/Calculated&amp;gt;&amp;lt;PropertyName&amp;gt;DisplayedOwner&amp;lt;/PropertyName&amp;gt;&amp;lt;Value xmlns:q1=&amp;quot;&lt;a href="http://microsoft.com/wsdl/types/"&gt;http://microsoft.com/wsdl/types/&lt;/a&gt;&amp;quot; xsi:type=&amp;quot;q1:guid&amp;quot;&amp;gt;21387668-baf1-42c9-84ab-ab68a3872311&amp;lt;/Value&amp;gt;&amp;lt;/RequestParameter&amp;gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Each create “RequestParameter” has a PropertyName, Value elements and value type as an attribute. &lt;/p&gt;  &lt;p&gt;Similarly an example update request parameter will be like this.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&amp;lt;RequestParameter xmlns:xsi=&amp;quot;&lt;a href="http://www.w3.org/2001/XMLSchema-instance"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xmlns:xsd=&amp;quot;&lt;a href="http://www.w3.org/2001/XMLSchema"&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot; xsi:type=&amp;quot;UpdateRequestParameter&amp;quot;&amp;gt;&amp;lt;Calculated&amp;gt;false&amp;lt;/Calculated&amp;gt;&amp;lt;PropertyName&amp;gt;MailNickname&amp;lt;/PropertyName&amp;gt;&amp;lt;Value xsi:type=&amp;quot;xsd:string&amp;quot;&amp;gt;amk123&amp;lt;/Value&amp;gt;&amp;lt;Mode&amp;gt;Modify&amp;lt;/Mode&amp;gt;&amp;lt;/RequestParameter&amp;gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Each UpdateRequestParamter has a PropertyName, Value, Mode elements and value type as an attribute.&lt;/p&gt;  &lt;p&gt;Delete request parameter will be similar to update request parameter with mode being ‘Remove’.&lt;/p&gt;  &lt;p&gt;Each request that’s submitted to FIM can have one or more of these request parameters. These request parameters can be used to identify all the modifications that have happened to the object. &lt;/p&gt;  &lt;p&gt;In order to find out all the changes that has ever happened to any object in FIM, we need to carry out the following the steps.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Find out all the requests that are targeted at the object that we wanted to keep track of. Use XPath query dialect to specify the object. We can specify an object meaning that we wanted to find all requests aimed at “Group” type objects. &lt;/li&gt;    &lt;li&gt;After we find out all the requests, inspect all request parameters with each request to find out all the requested modifications. &lt;/li&gt;    &lt;li&gt;Make a note of all these changes requested and request status in order to report back as part of the audit trail. &lt;/li&gt;    &lt;li&gt;If we wanted to keep track of current status of an object, we need to incrementally apply all the changes (request parameter values) as we see them with each request. This is how we can incrementally re-construct an objects state by reading through request, request parameter combinations. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;We are able to successfully follow this approach to construct the audit trail and keep an objects state up to date in a local database and report back all these changes to the users.&lt;/p&gt;  &lt;p&gt;This is just an approach to follow and can be implemented in a variety of ways.&lt;/p&gt;  &lt;p&gt;Happy coding and do ping me if you need more information.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919592" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/ForeFront+Identity+Manager/default.aspx">ForeFront Identity Manager</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/ILM/default.aspx">ILM</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/FIM/default.aspx">FIM</category></item><item><title>Web Application Configuration Analyzer – WACA CTP Release Coming Soon</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/06/web-application-configuration-analyzer-waca-ctp-release-coming-soon.aspx</link><pubDate>Fri, 06 Nov 2009 17:26:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918686</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9918686.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9918686</wfw:commentRss><description>&lt;p&gt;RV here...&lt;/p&gt;  &lt;p&gt;Last year we developed an internal tool to review servers for security configuration issues. Microsoft offers several enterprise options for doing this such as Systems Center Configuration Manager but the requirements were for a lightweight stand-alone tool focused towards developers and testers who often developed in an unmanaged environment. The tools needed to help developers configure their local environments with security best practices and specifically target;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows shares access control issues&lt;/li&gt;    &lt;li&gt;Windows services&lt;/li&gt;    &lt;li&gt;IIS settings such as authentication settings &lt;/li&gt;    &lt;li&gt;SSL settings&lt;/li&gt;    &lt;li&gt;virtual directory settings&lt;/li&gt;    &lt;li&gt;ASP.NET Web.Config settings&lt;/li&gt;    &lt;li&gt;SQL Server authentication&lt;/li&gt;    &lt;li&gt;extended stored procedures and database permissions &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It will help developers to develop applications in secure de3velopment environments and ensure that their application works seamlessly in a similar secure production environment. &lt;/p&gt;  &lt;p&gt;Quick summary of features included in WACA CTP.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Around 100 IIS, ASP.NET and SQL Server settings based on the MS-IT security deployment review settings &lt;/li&gt;    &lt;li&gt;Scan a single machine locally or remotely for these settings &lt;/li&gt;    &lt;li&gt;View an HTML report of the results &lt;/li&gt;    &lt;li&gt;Export the results to Excel or to Visual Studio Team Foundation Server as work items &lt;/li&gt;    &lt;li&gt;Extensible configuration option for Team Foundation Server fields mapping &lt;/li&gt;    &lt;li&gt;Includes option to specify fixed scan credentials &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here is a screenshot of the landing screen for the tool.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/WebApplicationConfigurationAnalyzerWACAC_860C/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/WebApplicationConfigurationAnalyzerWACAC_860C/image_thumb.png" width="500" height="376" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This tool compliments the CAT.NET tool which performs static analysis of .NET code and infact both tools use the same configuration signature format for their configuration checks meaning you can now scan the code and check the configuration seamlessly. We are working on releasing a CTP next week which will be available on &lt;a href="http://connect.microsoft.com"&gt;http://connect.microsoft.com&lt;/a&gt; (search for Information Security Tools and register).&lt;/p&gt;  &lt;p&gt;Thanks    &lt;br /&gt;RV&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9918686" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Information+Security+Tools/default.aspx">Information Security Tools</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/CAT.NET/default.aspx">CAT.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Host+Security+Assessment/default.aspx">Host Security Assessment</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Software+Testing/default.aspx">Software Testing</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Secure+Coding/default.aspx">Secure Coding</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/WACA/default.aspx">WACA</category></item><item><title>How To: Web Service Load Testing Using VSTS 2010</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/04/how-to-web-service-load-testing-using-vsts-2010.aspx</link><pubDate>Wed, 04 Nov 2009 21:54:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917571</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9917571.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9917571</wfw:commentRss><description>&lt;p&gt;Syed Aslam Basha here. I am a tester on the Information Security Tools team.&lt;/p&gt;  &lt;p&gt;Apart from performance testing for web sites, I have done load testing on web services for many of our projects. I will show how to create a web test for web service using Visual studio team system 2010 (VSTS) which can be used in load testing.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Steps to create web test for web service:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on start, select VS, right click and select run as administrator &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService1_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebService1" border="0" alt="WebService1" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService1_thumb.jpg" width="244" height="90" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on File –&amp;gt; New –&amp;gt; Project &lt;/li&gt;    &lt;li&gt;Select Test project and give appropriate name &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService2_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebService2" border="0" alt="WebService2" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService2_thumb.jpg" width="244" height="168" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select the project, right click and select Add New Test &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService3_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebService3" border="0" alt="WebService3" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService3_thumb.jpg" width="195" height="244" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select Web Test and give appropriate name for web test, click on ok &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService4_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebService4" border="0" alt="WebService4" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService4_thumb.jpg" width="244" height="203" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;It will start IE in recording mode. Click on Stop &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_thumb_4.png" width="244" height="118" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Right click on the web test and select add web service request &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService6_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebService6" border="0" alt="WebService6" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService6_thumb.jpg" width="244" height="79" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select &lt;a href="http://localhost"&gt;http://localhost&lt;/a&gt; node and set the properties &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService5_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebService5" border="0" alt="WebService5" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/WebService5_thumb.jpg" width="244" height="211" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Url should be the asmx file of web service and you could also set response goal time say 5 seconds (response time of the web service should be 5 seconds) &lt;/li&gt;    &lt;li&gt;Right click on the Url and select add header &lt;/li&gt;    &lt;li&gt;Select headers first node &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_18.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_thumb_8.png" width="244" height="116" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select Name as SoapAction and enter value as shown, SoapAction indicates, its a SOAP request and the value of the header is URI &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_20.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_thumb_9.png" width="244" height="100" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Enter value in string body, which is a soap envelop. Select content type as text/xml      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_22.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_thumb_10.png" width="244" height="90" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Ex: String body value      &lt;div id="codeSnippetWrapper"&gt;       &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;         &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #800000"&gt;xml&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt;?&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

        &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;soap:Envelope&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:xsd&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:soap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

        &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;soap:Body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

        &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;GetGeneratedResponse&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://tempuri.org/&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

        &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;challenge&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;{{HSM1.HSM.ChallengeCode}}&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;challenge&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

        &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;cardGUID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;{{HSM1.HSM.CardGUID}}&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;cardGUID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

        &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;GetGeneratedResponse&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

        &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;soap:Body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

        &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;soap:Envelope&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;You can get the soap envelop and soap action values by visiting asmx page of web service under test &lt;/li&gt;

  &lt;li&gt;The web service under test requires two values challenge and cardguid, it processes and returns response. In the above code am passing challenge code and card guid, these can be hard coded. But I have data bind them, where HSM1 is database, HSM is table name and challengecode is column name. The parameters values should be in {{ parameter name }} or simply a value without parenthesis. &lt;/li&gt;

  &lt;li&gt;Data binding is simple, click on the add data source button and select a database &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_24.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToWebServiceLoadTestingUsingVSTS_E9B8/image_thumb_11.png" width="244" height="39" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Run the web test and make sure there aren’t any issues before using it for load testing &lt;/li&gt;

  &lt;li&gt;Your web test for web service is ready and your good to go ahead and use in a load test scenario ( For more information on performance testing, you can refer to my blog post on &lt;a href="http://blogs.msdn.com/syedab/archive/2009/03/20/website-performance-testing-simplified.aspx" target="_blank"&gt;website performance testing simplified&lt;/a&gt;) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-Syed&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917571" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Testing/default.aspx">Testing</category></item><item><title>How To: Use Perfmon in Windows 7</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/04/how-to-use-perfmon-in-windows-7.aspx</link><pubDate>Wed, 04 Nov 2009 00:40:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917073</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9917073.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9917073</wfw:commentRss><description>&lt;p&gt;Syed Aslam Basha here. I am a tester on the Information Security Tools team.&lt;/p&gt;  &lt;p&gt;This blog post is in continuation with &lt;a href="http://blogs.msdn.com/syedab/archive/2009/09/12/how-to-identify-memory-leaks-in-an-unmanaged-application.aspx" target="_blank"&gt;How To: Identify Memory Leaks In An Unmanaged Application&lt;/a&gt; blog post. I will show how to setup perfmon to collect data for the selected counter in Windows 7.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Steps to configure perfmon&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on start –&amp;gt; Click on Run &lt;/li&gt;    &lt;li&gt;Enter Perfmon and press enter, click on Yes &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon1_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon1" border="0" alt="Perfmon1" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon1_thumb.jpg" width="244" height="128" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;It launches performance monitor &lt;/li&gt;    &lt;li&gt;Click on Data Collector Sets &lt;/li&gt;    &lt;li&gt;Select User Defined node and right click on it &lt;/li&gt;    &lt;li&gt;Select New and Data collector Set &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon2_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon2" border="0" alt="Perfmon2" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon2_thumb.jpg" width="244" height="157" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Enter a Name, select create manually and click on Next &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon3_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon3" border="0" alt="Perfmon3" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon3_thumb.jpg" width="244" height="191" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select create data logs, performance counter and click on Next &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon4_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon4" border="0" alt="Perfmon4" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon4_thumb.jpg" width="244" height="188" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on Add &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon5_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon5" border="0" alt="Perfmon5" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon5_thumb.jpg" width="244" height="190" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select the required counters say processor Time, Add and click on OK&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon6_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon6" border="0" alt="Perfmon6" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon6_thumb.jpg" width="244" height="183" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on Next &lt;/li&gt;    &lt;li&gt;Browse to a folder, click on next &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon7_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon7" border="0" alt="Perfmon7" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon7_thumb.jpg" width="244" height="187" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon8_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon8" border="0" alt="Perfmon8" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon8_thumb.jpg" width="244" height="187" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You can enter run as user details by clicking on change button &lt;/li&gt;    &lt;li&gt;Select save and close and click on finish &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon9_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon9" border="0" alt="Perfmon9" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon9_thumb.jpg" width="244" height="189" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The user data collector is created &lt;/li&gt;    &lt;li&gt;Right click on the newly crated data set and click on start &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon10_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon10" border="0" alt="Perfmon10" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon10_thumb.jpg" width="244" height="194" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Right click and select properties if you wish to change properties defined at any point of time &lt;/li&gt;    &lt;li&gt;Once you are done with your application testing, right click and select stop &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon11_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon11" border="0" alt="Perfmon11" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon11_thumb.jpg" width="244" height="162" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The log file is created and stored at the folder mentioned in the above steps &lt;/li&gt;    &lt;li&gt;Open the log file and analyze the data for each counter &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon12_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Perfmon12" border="0" alt="Perfmon12" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUsePerfmon_E177/Perfmon12_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Publish the results &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;- Syed&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917073" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Testing/default.aspx">Testing</category></item><item><title>Double Hop Windows Authentication with IIS Hosted WCF Service</title><link>http://blogs.msdn.com/securitytools/archive/2009/11/04/double-hop-windows-authentication-with-iis-hosted-wcf-service.aspx</link><pubDate>Wed, 04 Nov 2009 00:35:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917070</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9917070.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9917070</wfw:commentRss><description>&lt;p&gt;Hello, Randy Evans here.&amp;#160; I am a principal developer on the Information Security Tools Team.&amp;#160; In a recent project, we had a intranet web site that called an IIS hosted WCF service.&amp;#160; The WCF service, in turn, called a SQL Server Reporting Services (SSRS) web service. We wanted to utilize the authorization mechanisms of SSRS. To do this, we needed to impersonate the end user when we made the calls to SSRS.&amp;#160; For the above scenario to work, we needed to perform an authentication double hop.&amp;#160; Meaning, the web site needed to impersonate the user when calling the WCF service and the WCF service also needed to impersonate the user when calling SSRS.&amp;#160; Our project was using Kerberos based authentication.&amp;#160; By default, Windows authentication does not allow a user’s impersonated credentials to be reused when attempting to authenticate to a remote resource.&amp;#160; The SSRS web service is considered a remote resource from the WCF service.&amp;#160; There are many blogs and listings in social networks that explain how to impersonate a user coming to an IIS hosted WCF service.&amp;#160; However, these articles do not explain how to perform the double hop.&amp;#160; Once the service is set up to accept impersonation, the answer was actually quite simple.&amp;#160; &lt;/p&gt;  &lt;p&gt;Windows authentication supports 5 levels of impersonation.&amp;#160; The forth, and default, level is Impersonate. The fifth level is Delegate.&amp;#160; The default level does not allow the double hop authentication. To enable the double hop, the client calling the WCF service needs to set the impersonation level of the WCF service to Delegate.&amp;#160; This is performed with the following code:&lt;/p&gt;  &lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;  Service1Client service = new Service1Client();

  //Sets the impersonation level to delegation.  Without delegation level impersonation, 
  //the WCF service would not be able to impersonate to a remote server.
  &lt;strong&gt;&lt;font color="#ff0000"&gt;service.ClientCredentials.Windows.AllowedImpersonationLevel = 
     System.Security.Principal.TokenImpersonationLevel.Delegation;&lt;/font&gt;&lt;/strong&gt;

  string retString = service.GetData(1);&lt;/pre&gt;

&lt;p&gt;In addition to setting the impersonation level to Delegate, there are two other places where changes need to occur.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Enable impersonation at the web site.&amp;#160; Either enable ASP.NET impersonation for the entire site or temporarily impersonate the user from within the web site by using WindowsIdentity.Impersonate(token). 
    &lt;p&gt;Add the following attribute to each method in the WCF service that needs impersonation. &lt;/p&gt;

    &lt;p&gt;[OperationBehavior(Impersonation = ImpersonationOption.Allowed)] &lt;/p&gt;

    &lt;p&gt;Example:&lt;/p&gt;

    &lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [ bindingconfiguration=" winauthbasichttpbinding?];="winauthbasichttpbinding?];" html-script:="html-script:" light:="light:" ruler:="ruler:" false;="false;" smart-tabs:="smart-tabs:" true;="true;" tab-size:="tab-size:" 4;="4;" toolbar:="toolbar:" true;?="true;?"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]&lt;/font&gt;&lt;/strong&gt;
public string GetData(int value)
{&lt;/pre&gt;

    &lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [ bindingconfiguration=" winauthbasichttpbinding?];="winauthbasichttpbinding?];" html-script:="html-script:" light:="light:" ruler:="ruler:" false;="false;" smart-tabs:="smart-tabs:" true;="true;" tab-size:="tab-size:" 4;="4;" toolbar:="toolbar:" true;?="true;?"&gt;    //This is the service call that requires the double hop.
    ReportingService2005 reportService = new ReportingService2005();
    reportService.Credentials = System.Net.CredentialCache.DefaultCredentials;

    //Get a listing of all items in the reporting service catalog that are in the root folder.
    CatalogItem[] catalogItems = reportService.ListChildren(&amp;quot;/&amp;quot;, false);

    StringBuilder retString = new StringBuilder();

    foreach (CatalogItem catalogItem in catalogItems)
        retString.Append(&amp;quot;&amp;lt;br&amp;gt;&amp;quot; + catalogItem.Name);

    retString.Append(&amp;quot;&amp;lt;br&amp;gt;You entered: &amp;quot; + value.ToString());

    return retString.ToString();
}&lt;/pre&gt;

    &lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [ bindingconfiguration=" winauthbasichttpbinding?];="winauthbasichttpbinding?];" html-script:="html-script:" light:="light:" ruler:="ruler:" false;="false;" smart-tabs:="smart-tabs:" true;="true;" tab-size:="tab-size:" 4;="4;" toolbar:="toolbar:" true;?="true;?"&gt;NOTE – ImpersonationOption.Required will work as well.&lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;There are three modifications required in the web.config file of the WCF Service web application. 
    &lt;p&gt;1. Add the following binding node under the &amp;lt;system.serviceModel&amp;gt; node to enforce Windows authentication.&lt;/p&gt;

    &lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;      &amp;lt;bindings&amp;gt;
        &amp;lt;basicHttpBinding&amp;gt;
          &amp;lt;binding name=&amp;quot;winAuthBasicHttpBinding&amp;quot;&amp;gt;
            &amp;lt;security mode=&amp;quot;TransportCredentialOnly&amp;quot;&amp;gt;
              &amp;lt;transport clientCredentialType=&amp;quot;Windows&amp;quot;/&amp;gt;
            &amp;lt;/security&amp;gt;
          &amp;lt;/binding&amp;gt;
        &amp;lt;/basicHttpBinding&amp;gt;
      &amp;lt;/bindings&amp;gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2. Reference this binding from the service endpoint node.&lt;/p&gt;

&lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;         &amp;lt;endpoint address=&amp;quot;&amp;quot; 
                   binding=&amp;quot;basicHttpBinding&amp;quot; 
                   &lt;strong&gt;&lt;font color="#ff0000"&gt;bindingConfiguration=&amp;quot;winAuthBasicHttpBinding&amp;quot;&lt;/font&gt;&lt;/strong&gt;
                   contract=&amp;quot;Service.Service&amp;quot; /&amp;gt; &lt;/pre&gt;

&lt;p&gt;Note that the binding name string must match the bindingConfiguration string. In this example the string value is “winAuthBasicHttpBinding”. &lt;/p&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 3. Add the following node to the service’s serviceBehaviors behavior node.&lt;/p&gt;

&lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [ bindingconfiguration=" winauthbasichttpbinding?];="winauthbasichttpbinding?];" html-script:="html-script:" light:="light:" ruler:="ruler:" false;="false;" smart-tabs:="smart-tabs:" true;="true;" tab-size:="tab-size:" 4;="4;" toolbar:="toolbar:" true;?="true;?"&gt;         &amp;lt;serviceAuthorization impersonateCallerForAllOperations=&amp;quot;true&amp;quot; /&amp;gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Example:&lt;/p&gt;

&lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [ bindingconfiguration=" winauthbasichttpbinding?];="winauthbasichttpbinding?];" html-script:="html-script:" light:="light:" ruler:="ruler:" false;="false;" smart-tabs:="smart-tabs:" true;="true;" tab-size:="tab-size:" 4;="4;" toolbar:="toolbar:" true;?="true;?"&gt;        &amp;lt;behaviors&amp;gt;
            &amp;lt;serviceBehaviors&amp;gt;
                &amp;lt;behavior name=&amp;quot;Service.ServiceBehavior&amp;quot;&amp;gt;
                    &amp;lt;serviceMetadata httpGetEnabled=&amp;quot;true&amp;quot; /&amp;gt;
                    &amp;lt;serviceDebug includeExceptionDetailInFaults=&amp;quot;True&amp;quot; /&amp;gt;
                    &lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;lt;serviceAuthorization impersonateCallerForAllOperations=&amp;quot;true&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/strong&gt;
                &amp;lt;/behavior&amp;gt;
            &amp;lt;/serviceBehaviors&amp;gt;
        &amp;lt;/behaviors&amp;gt;&lt;/pre&gt;

&lt;p&gt;Follow the below link for more details from MSDN on using impersonation with WCF services. &lt;/p&gt;

&lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms730088.aspx" href="http://msdn.microsoft.com/en-us/library/ms730088.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms730088.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917070" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Information+Security+Tools/default.aspx">Information Security Tools</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Secure+Coding/default.aspx">Secure Coding</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Normal Service Will Resume Soon</title><link>http://blogs.msdn.com/securitytools/archive/2009/10/28/normal-service-will-resume-soon.aspx</link><pubDate>Wed, 28 Oct 2009 20:21:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9914307</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9914307.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9914307</wfw:commentRss><description>&lt;p&gt;The coding fairies are been busy crafting code. Blogging (and maybe even Tweeting if there is a demand) will return soon and well have a few nice CTP’s for you to play with over the next few weeks.&lt;/p&gt;  &lt;p&gt;Look for news about;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;CAT.NET 2.0 CTP – Rebuilt from the ground up using &lt;a href="http://research.microsoft.com/en-us/collaboration/focus/cs/phoenix.aspx"&gt;Phoenix&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;WPL 1.0 CTP – with XSS and SQL injection protection at run-time&lt;/li&gt;    &lt;li&gt;TAM 3.0 – Final release (with a very cool twist that we think the community will appreciate)&lt;/li&gt;    &lt;li&gt;BitLocker Key Recovery Tool – A BitLocker key escrow system for enterprise type BitLocker deployments&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;CISF is also really starting to shape up and there will now be a major code drop early in the new year including a very cool security BI solution, a completely re-written portal (which also looks great), notification engine and more. All enterprise tools from our team (and there are several big ones that will be released in 2010) will require CISF moving forward. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Stay tuned!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914307" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Information+Security+Tools/default.aspx">Information Security Tools</category></item><item><title>How To: Use VSTS Code Profiler</title><link>http://blogs.msdn.com/securitytools/archive/2009/10/28/how-to-use-vsts-code-profiler.aspx</link><pubDate>Wed, 28 Oct 2009 20:17:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9914305</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9914305.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9914305</wfw:commentRss><description>&lt;p&gt;Syed Aslam Basha here. I am a tester on the Information Security Tools team.&lt;/p&gt;  &lt;p&gt;This blog post is in continuation with &lt;a href="http://blogs.msdn.com/syedab/archive/2009/03/20/website-performance-testing-simplified.aspx" target="_blank"&gt;website performance testing simplified&lt;/a&gt; blog post. The final step in performance testing is to narrow down the faulty code which is taking lot of time or memory or CPU usage. I will show how VSTS code profiler can be used to narrow down the faulty code in a website.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Steps to configure VSTS Code Profiler:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Launch VSTS and open the website. &lt;/li&gt;    &lt;li&gt;Run through all scenarios in the website and make sure there aren’t any errors or blockages. &lt;/li&gt;    &lt;li&gt;Click on Analyze menu and select launch performance wizard. &lt;/li&gt;    &lt;li&gt;It launches a wizard as shown below. It can profile current project or exe or dll or a website. Select the first one and click on next. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/PerforamanceWizard1_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PerforamanceWizard1" border="0" alt="PerforamanceWizard1" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/PerforamanceWizard1_thumb.jpg" width="244" height="210" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select the method of profiling say instrumentation and click on next. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/performancwizard2_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="performancwizard2" border="0" alt="performancwizard2" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/performancwizard2_thumb.jpg" width="244" height="211" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on finish button &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/image_thumb_1.png" width="244" height="210" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Save the session &lt;/li&gt;    &lt;li&gt;Performance explorer is be launched &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/performanceexplorer_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="performanceexplorer" border="0" alt="performanceexplorer" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/performanceexplorer_thumb.jpg" width="213" height="199" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select launch with profiling as shown below &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/Launchwithprofiling_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Launchwithprofiling" border="0" alt="Launchwithprofiling" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/Launchwithprofiling_thumb.jpg" width="244" height="122" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Execute all scenarios in the application &lt;/li&gt;    &lt;li&gt;Click on stop button &lt;/li&gt;    &lt;li&gt;Report is generated and is shown in the report section of performance explorer &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/Report_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Report" border="0" alt="Report" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/Report_thumb.jpg" width="210" height="168" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Select the report, performance report summary is shown &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/ReportSummary_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ReportSummary" border="0" alt="ReportSummary" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/ReportSummary_thumb.jpg" width="244" height="192" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The report clearly shows which functions are most called, functions taking longest.., &lt;/li&gt;    &lt;li&gt;You can save the performance session and reports &lt;/li&gt;    &lt;li&gt;You can change the current view and analyze the data to identify the faulty code &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowToUseVSTScodeprofiler_9DA4/image_thumb_2.png" width="244" height="113" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;- Syed&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914305" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Information+Security+Tools/default.aspx">Information Security Tools</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Software+Testing/default.aspx">Software Testing</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Secure+Coding/default.aspx">Secure Coding</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/QA/default.aspx">QA</category></item><item><title>Web Protection Library – CTP Release Coming Soon</title><link>http://blogs.msdn.com/securitytools/archive/2009/10/17/web-protection-library-ctp-release-coming-soon.aspx</link><pubDate>Sat, 17 Oct 2009 17:35:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9908586</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9908586.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9908586</wfw:commentRss><description>&lt;p&gt;RV here...&lt;/p&gt;  &lt;p&gt;Over the last couple of months we have been actively developing the next version of Anti-XSS library and Security Runtime Engine (SRE). We have added new mitigations that go way beyond the original Cross Site Scripting (XSS) protections of the Anti-XSS Library hence the change in name to the Web Protection Library or WPL. &lt;/p&gt;  &lt;p&gt;WPL now includes encoding methods to provide mitigations around LDAP Injection and CSS Injections (Cascading Style Sheets) with several others planned for the future. The runtime protection module includes a new HTTP Module that detects and protects from SQL Injection attempts using a specialized SQL Parser to detect any valid SQL queries in the input. &lt;/p&gt;  &lt;p&gt;A quick summary of changes in Web Protection Library v1.0 are;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;New Encoder and Sanitizer classes provide encoding and sanitization functionality respectively &lt;/li&gt;    &lt;li&gt;AntiXss class is marked as obsolete, now generates a warning when compiled using AntiXss but methods work the same for backwards compatibility&lt;/li&gt;    &lt;li&gt;Updated Anti-XSS Module to increase performance &lt;/li&gt;    &lt;li&gt;New SQL Injection detection module to detect SQL Queries in input &lt;/li&gt;    &lt;li&gt;Completely redesigned configuration UI which provides easy editing of configuration files&amp;#160; directly from within Visual Studio&lt;/li&gt;    &lt;li&gt;Merged configuration files into sing web.config. Separate antixssmodule.config is not required anymore&lt;/li&gt;    &lt;li&gt;SRE exposes an extensibility API which can be used to build new mitigations &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We are really pleased with the significant progress we are making in this space and excited about getting some more community feedback by way of a community technology preview. If you are building ASP.NET web sites you need to be using WPL, period. &lt;/p&gt;  &lt;p&gt;In the next couple of weeks we will be providing more information on our blog along with download links and ways to register for the Connect site to provide bugs and DCR’s. &lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;RV&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9908586" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Anti-XSS/default.aspx">Anti-XSS</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Information+Security+Tools/default.aspx">Information Security Tools</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/WPL/default.aspx">WPL</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/Secure+Coding/default.aspx">Secure Coding</category></item><item><title>How to Integrate Risk Tracker with Internal HR Feeds</title><link>http://blogs.msdn.com/securitytools/archive/2009/09/30/how-to-integrate-risk-tracker-with-internal-hr-feeds.aspx</link><pubDate>Wed, 30 Sep 2009 23:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9901502</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9901502.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9901502</wfw:commentRss><description>&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;Hi, Vineet Batta here.&amp;nbsp; I’m a senior software developer on the Information Security Tools (IST) team.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;In my last blog I shared details on &lt;A title="Risk Tracker v1.0 Release" href="http://blogs.msdn.com/securitytools/archive/2009/09/29/risk-tracker-v1-0-release.aspx" target=_blank mce_href="http://blogs.msdn.com/securitytools/archive/2009/09/29/risk-tracker-v1-0-release.aspx"&gt;features of the Risk Tracker application&lt;/A&gt; focusing on the Risk Management module. Today, I will help customers who may want to deploy this in their organizations (this tool is licensed under MS-PL).&amp;nbsp; First there are prerequisite integration steps that needs to be completed so that Risk tracker can be successfully deployed in an environment. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;A core functionality of Risk Tracker is the AuthZ (Authentication &amp;amp; Authorization) component.&amp;nbsp; Risk Tracker relies on the following to allow access to the Risk Tracker application based on a user’s configuration setup in the back end system. The prerequisites include:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT size=2 face="Segoe UI"&gt;Active Directory services are available. &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT size=2 face="Segoe UI"&gt;Person table is populated (exists in ISRM db). &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT size=2 face="Segoe UI"&gt;Organization table is populated (exists in ISRM db). &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT size=2 face="Segoe UI"&gt;Security Groups Configurations are completed. &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT size=2 face="Segoe UI"&gt;Cache Manager executable has run at least once.&lt;/FONT&gt; &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;U&gt;&lt;FONT size=2&gt;&lt;FONT face="Segoe UI"&gt;&lt;STRONG&gt;Person Table&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;This table needs to be populated with all the employee information within an organization. Only people who have records in this table based on roles defined for them will have access to Risk Tracker. I will explain more about roles later.&amp;nbsp; The records in this table need to be continuously synchronized from the actual source (HR feed system).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;Example:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;Internally our team implemented SISS package that did this required synchronization of employee data which helps maintain updated employee records in the &lt;EM&gt;Person&lt;/EM&gt; table. You can do this for your internal implementation to maintain the records in this table.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_2.png"&gt;&lt;FONT size=2 face="Segoe UI"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 1px 0px 0px 1px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_thumb.png" width=360 height=293 mce_src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_thumb.png"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face="Segoe UI"&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Segoe UI"&gt;&lt;STRONG&gt;&lt;U&gt;OrganizationHierarchy table&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;This table holds the organization hierarchy information for your organization. Most of the organizations also have code (column OrganizationHierarchyCode) associated with it also. This column is also referenced in the ‘Person’ table. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;Example:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;Internally our team implemented SISS package that retrieved this organizations hierarchy from an internal HR feed which now allows the organization hierarchy to be maintained here. You can do the same for your internal implementation and maintain the records in this table as well. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_4.png"&gt;&lt;FONT size=2 face="Segoe UI"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_thumb_1.png" width=409 height=201 mce_src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_thumb_1.png"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face="Segoe UI"&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT size=2 face="Segoe UI"&gt;Security Group Configuration&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Segoe UI"&gt;Default Roles are setup as below in the ISRM db with correct Hierarchy &lt;U&gt;during installation&lt;/U&gt;. The data is in the &lt;EM&gt;Role&lt;/EM&gt; table.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Segoe UI"&gt;&lt;FONT color=#800000&gt;Note: Parent inherits Childs permission in this system.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_6.png"&gt;&lt;FONT size=2 face="Segoe UI"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_thumb_2.png" width=271 height=158 mce_src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_thumb_2.png"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face="Segoe UI"&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Segoe UI"&gt;&lt;STRONG&gt;Define&lt;/STRONG&gt; Security groups in [&lt;EM&gt;AuthorizationGroup&lt;/EM&gt;] for each role.&amp;nbsp; Example: ‘Risk Manager Group’. This is a required step.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;For user to have access to the application based on roles (defined above) the user should belong to one or more security groups defined in AD. Then these groups should be mapped to specific role in the ISRM database. This mapping data is stored in [&lt;EM&gt;RoleMapping&lt;/EM&gt;] table.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;Example of data in [RoleMapping] table:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_8.png"&gt;&lt;FONT size=2 face="Segoe UI"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_thumb_3.png" width=352 height=161 mce_src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/HowtoIntegrateofRiskTrackerwithinternalH_B45/image_thumb_3.png"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face="Segoe UI"&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;Here the GroupID is the Foreign key referenced from primary table [&lt;EM&gt;AuthorizationGroup&lt;/EM&gt;].&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT size=2 face="Segoe UI"&gt;Cache Manager &lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;The final step is to &lt;STRONG&gt;run&lt;/STRONG&gt; the Cache Manager executable {The detailed deployment steps for Cache Manager are documented in Installation help file} . This will populate the data in the ISRM database for users with the correct role mapping based on which security group they belong to. Please verify that the data is populated in the following tables:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT size=2 face="Segoe UI"&gt;[&lt;EM&gt;AuthZUser&lt;/EM&gt;] &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT size=2 face="Segoe UI"&gt;[&lt;EM&gt;AuthZUserRole&lt;/EM&gt;]&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;Hope this helps folks who are trying to integrate Risk Tracker with their internal HR data feeds for employee data.&amp;nbsp; In my next blog I will do a deep dive into the service layer and authorization implementation which we did for Risk Tracker.&amp;nbsp; Stay tuned…&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;-Vineet&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Segoe UI"&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9901502" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/Risk+Tracker/default.aspx">Risk Tracker</category></item><item><title>InfoPath Forms submission to a SharePoint Library – Part 2</title><link>http://blogs.msdn.com/securitytools/archive/2009/09/30/infopath-forms-submission-to-a-sharepoint-library-part-2.aspx</link><pubDate>Wed, 30 Sep 2009 06:50:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9901127</guid><dc:creator>cisg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/securitytools/comments/9901127.aspx</comments><wfw:commentRss>http://blogs.msdn.com/securitytools/commentrss.aspx?PostID=9901127</wfw:commentRss><description>&lt;p&gt;Hi, Aravindhan Rajagopal here. I am a developer on the Information Security Tools team.&lt;/p&gt;  &lt;p&gt;This post continues form my previous blog (&lt;a href="http://blogs.msdn.com/securitytools/archive/2009/09/30/infopath-forms-submission-to-a-sharepoint-library-part-1.aspx"&gt;Part 1 here)&lt;/a&gt; on InfoPath form submission to SharePoint...Lets go through the web service creation and form submission methods specific to the scenario where custom codes inbuilt in an InfoPath form does not work in an organization.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Web Service Creation:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As we know, InfoPath forms are nothing but xmls. So each and every InfoPath forms submitted in email can be saved as an XML from outlook. So you can go through the xmls that gets generated for each type of form submission and come up with a web service methods real quick. I felt that this method would help you cover almost all the real time scenarios and options that the customers would do while submitting and hence the resulting xmls - that you should cover in your web service. Not to forget the xml namespace consideration in the web service code.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="530"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="528"&gt;         &lt;p&gt;&lt;strong&gt;Please Note:&lt;/strong&gt; &lt;em&gt;This method would come handy in case your InfoPath form contains repeatable sections. I have seen many InfoPath forms that were constructed using copy/paste of controls from one place to the other. This would result in an ill formed xml, making it tricky to be considered for a web service call. The above email –&amp;gt; save as xml –&amp;gt; for all the form submit options would help you create a clean InfoPath form.&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;For eg.,&lt;/p&gt;  &lt;p&gt;Assume that the InfoPath designer copy pasted the controls between repeatable sections - which is quite common during creation of InfoPath forms.&lt;/p&gt;  &lt;p&gt;The xml might end up like below, if the designer has copy pasted the router section controls from server section controls in the InfoPath form.&lt;/p&gt;  &lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 10; toolbar: true;"&gt;&lt;font size="1" face="ta"&gt;&amp;lt;my:opt_formBody&amp;gt;
        &amp;lt;my:radioOption&amp;gt;2&amp;lt;/my:radioOption&amp;gt;
        &amp;lt;my:ServerRequestSection&amp;gt;
            &amp;lt;my:textRequestor&amp;gt;john&amp;lt;/my:textRequestor&amp;gt;
            &amp;lt;my:textAlias&amp;gt;johnabc&amp;lt;/my:textAlias&amp;gt;
            &amp;lt;my:textTeamName&amp;gt;Infosec Team&amp;lt;/my:textTeamName&amp;gt;
            &amp;lt;my:textServerName&amp;gt;XYZ Router Name&amp;lt;/my:textServerName&amp;gt; &lt;font color="#ff0000"&gt;&amp;lt;&amp;lt;--- Router name filled under server name&lt;/font&gt;
            &amp;lt;my:richtextComments&amp;gt;This is test data&amp;lt;/my:richtextComments&amp;gt;
        &amp;lt;/my:ServerRequestSection&amp;gt;
        &amp;lt;my:RouterRequestSection&amp;gt; &lt;font color="#ff0000"&gt;&amp;lt;&amp;lt;---This is the section which was originally filled up by the customer&lt;/font&gt;
        &amp;lt;/my:RouterRequestSection&amp;gt;
&amp;lt;/my:opt_formBody&amp;gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;You might understand how it would be if the router name is assigned to a server :-) The original intended xml should be like below&lt;/p&gt;

&lt;p&gt;&lt;font size="1" face="Courier New"&gt;&amp;lt;my:opt_formBody&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:radioOption&amp;gt;2&amp;lt;/my:radioOption&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:ServerRequestSection&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:textRequestor&amp;gt;&amp;lt;/my:textRequestor&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:textAlias&amp;gt;&amp;lt;/my:textAlias&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:textTeamName&amp;gt;&amp;lt;/my:textTeamName&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:textServerName&amp;gt;&amp;lt;/my:textServerName&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:richtextComments&amp;gt;&amp;lt;/my:richtextComments&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/my:ServerRequestSection&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:RouterRequestSection&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:textRequestor&amp;gt;john&amp;lt;/my:textRequestor&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:textAlias&amp;gt;johnabc&amp;lt;/my:textAlias&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:textTeamName&amp;gt;Infosec Team&amp;lt;/my:textTeamName&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:textRouterName&amp;gt;XYZ Router Name&amp;lt;/my:textRouterName&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;my:richtextComments&amp;gt;This is test data&amp;lt;/my:richtextComments&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/my:groupUnknownLocation&amp;gt; 

    &lt;br /&gt;&amp;lt;/my:opt_formBody&amp;gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;The custom action (request logging and tracking in our case) can be implemented in the web service code in its appropriate method pertaining to each of the forms. I think I need not go through that section in detail as it may not fit your requirement&lt;/p&gt;

&lt;p&gt;Lastly, instead of having the customer go to individual form library and hit a new item button (please refer to MSDN articles on how to publish an InfoPath template to a SharePoint library), we shall list all the forms in a single page in the team site. To accomplish this, we may publish the templates to form libraries (either individual or multiple) and refer to the template form in the customer facing page like below&lt;/p&gt;

&lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 10; toolbar: true;"&gt;&lt;font size="1" face="tah"&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;
&amp;lt;html dir=&amp;quot;ltr&amp;quot;&amp;gt;

&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;
&amp;lt;META name=&amp;quot;WebPartPageExpansion&amp;quot; content=&amp;quot;full&amp;quot;&amp;gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;
&amp;lt;title&amp;gt;Customer Engagement Forms&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
    &amp;lt;a href=&amp;quot;../ServerEngagement/Forms/template.xsn&amp;quot;&amp;gt;Server Request&amp;lt;/a&amp;gt;
    &amp;lt;br&amp;gt;
    &amp;lt;a href=&amp;quot;../RouterEngagement/Forms/template.xsn&amp;quot;&amp;gt;Router Request&amp;lt;/a&amp;gt;
    &amp;lt;br&amp;gt;
    &amp;lt;a href=&amp;quot;../AccessRequest/Forms/template.xsn&amp;quot;&amp;gt;Access Request&amp;lt;/a&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;Please leave comments in case you need any particular topic discussed above needs to be elaborated.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9901127" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/securitytools/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/securitytools/archive/tags/SharePoint/default.aspx">SharePoint</category></item></channel></rss>