<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.iis.net/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/" xmlns:cs="http://blogs.iis.net/"><channel><title>Nitasha&amp;#39;s blog</title><link>http://blogs.iis.net/nitashav/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>IIS6.0 UI vs. IIS7.x UI Series: Directory Browsing</title><link>http://blogs.iis.net/nitashav/archive/2010/05/13/iis6-0-ui-vs-iis7-x-ui-series-directory-browsing.aspx</link><pubDate>Thu, 13 May 2010 22:32:53 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3835783</guid><dc:creator>NitashaV</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3835783</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/05/13/iis6-0-ui-vs-iis7-x-ui-series-directory-browsing.aspx#comments</comments><description>&lt;p&gt;This week in the blog series (Introduction to the series – &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;here&lt;/a&gt;), let’s talk about Directory Browsing feature.&lt;/p&gt;  &lt;p&gt;Default document feature enables a default document that’s served when a client requests the site directly (without a specific file).&amp;#160; &lt;/p&gt;  &lt;p&gt;When directory browsing is enabled (and default document is disabled or not configured), request to the web site (not a specific file) will list all the files and directories under the site’s physical path. This feature is &lt;u&gt;disabled&lt;/u&gt; by default.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Directory Browsing feature in IIS 6.0&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS6 UI – Directory Browsing&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS6_DirectoryBrowsing_4F361F8F.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS6_DirectoryBrowsing" border="0" alt="IIS6_DirectoryBrowsing" src="http://blogs.iis.net/blogs/nitashav/IIS6_DirectoryBrowsing_thumb_2DD679F3.jpg" width="544" height="474" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To enable/disable directory browse in IIS 6.0 UI, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr)&lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view&lt;/p&gt;  &lt;p&gt;- Right click on the site, folder or file that you would like to configure/enable default content page for and click on “Properties” from the context menu.&amp;#160; &lt;/p&gt;  &lt;p&gt;- Click on Home Directory tab. &lt;/p&gt;  &lt;p&gt;- You can now &lt;b&gt;Enable/Disable directory browsing &lt;/b&gt;for your site by checking/un-checking the checkbox next to “Directory Browsing”&lt;/p&gt;  &lt;p&gt;- Click on all the “Ok” buttons after configuring this feature&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Directory Browsing feature in IIS 7.x&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In IIS7.x UI, Directory Browsing feature is used to enable directory listing and also to configure information to display for the list. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS7 UI – Directory Browsing&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_HomePage_DirectoryBrowsing_32D8B7A2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_HomePage_DirectoryBrowsing" border="0" alt="IIS7_HomePage_DirectoryBrowsing" src="http://blogs.iis.net/blogs/nitashav/IIS7_HomePage_DirectoryBrowsing_thumb_43047F9B.png" width="544" height="409" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_DirBrowsing_2138A70A.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_DirBrowsing" border="0" alt="IIS7_DirBrowsing" src="http://blogs.iis.net/blogs/nitashav/IIS7_DirBrowsing_thumb_31D0A1F8.png" width="544" height="407" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;To configure directory browse using IIS7.x UI, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr) &lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view &lt;/p&gt;  &lt;p&gt;- Select the site, folder or file that you would like to enable directory browsing for in the tree view and click.&lt;/p&gt;  &lt;p&gt;- Open “Directory Browsing” feature from the Home Page.&lt;/p&gt;  &lt;p&gt;- From the Actions Menu, you can now &lt;b&gt;Enable/Disable&lt;/b&gt; Directory Browsing&lt;/p&gt;  &lt;p&gt;- Additionally, you can also &lt;b&gt;Configure &lt;/b&gt;information that you would to display in the directory listing on the feature home page like Time, Size, Extension, Date&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next blog in the series: Custom Errors&lt;/p&gt;  &lt;p&gt;As always, please drop a comment if there are any specific UI modules/properties you would like to be compared next and also if you have any feedback on the level of detail.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3835783" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS7.x UI Series: Default Document</title><link>http://blogs.iis.net/nitashav/archive/2010/04/19/iis6-0-ui-vs-iis7-x-ui-series-default-document.aspx</link><pubDate>Tue, 20 Apr 2010 04:37:55 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3793361</guid><dc:creator>NitashaV</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3793361</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/04/19/iis6-0-ui-vs-iis7-x-ui-series-default-document.aspx#comments</comments><description>&lt;p&gt;This week in the blog series (Introduction to the series – &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;here&lt;/a&gt;), let’s talk about Default Documents&lt;/p&gt;  &lt;p&gt;Default Document feature is for client requests to a Web site that do not specify a file, like, &lt;a href="http://www.contoso.com"&gt;www.contoso.com&lt;/a&gt;. The default document is the file the server returns for such a request (based on the list of default documents specified for the server).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS6 UI – Default Documents&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS6_DefaultDocument_1898CBC6.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001[5]" border="0" alt="clip_image001[5]" src="http://blogs.iis.net/blogs/nitashav/clip_image0015_029E7202.jpg" width="584" height="434" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To configure default content page in IIS 6.0 UI, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr)&lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view&lt;/p&gt;  &lt;p&gt;- Right click on the site, folder or file that you would like to configure/enable default content page for and click on “Properties” from the context menu.&amp;#160; &lt;/p&gt;  &lt;p&gt;- Click on Documents tab. &lt;/p&gt;  &lt;p&gt;- You can now &lt;b&gt;Enable/Disable default content&lt;/b&gt; page for your site by checking/un-checking the checkbox next to “Enable default content page”&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;Note&lt;/b&gt; that there are a list of documents that you can “&lt;b&gt;Add…&lt;/b&gt;” to or “&lt;b&gt;Remove&lt;/b&gt;” from. Also this is an ordered list of documents. You can &lt;b&gt;Move&lt;/b&gt; a document in this list &lt;b&gt;Up&lt;/b&gt; or &lt;b&gt;Down&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;- Click on all the “Ok” buttons after configuring this feature&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Default Documents feature in IIS 7.x&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS7 UI – Default Documents &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/image_52942080.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.iis.net/blogs/nitashav/image_thumb_1DA71B43.png" width="584" height="439" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/image_7A96A9D2.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.iis.net/blogs/nitashav/image_thumb_23BE4211.png" width="584" height="434" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To configure default document using IIS7.x UI, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr) &lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view &lt;/p&gt;  &lt;p&gt;- Select the site, folder or file that you would like to enable default document for in the tree view and click.&lt;/p&gt;  &lt;p&gt;- Open “Default Documents” feature from the Home Page.&lt;/p&gt;  &lt;p&gt;- From the Actions Menu, you can now &lt;b&gt;Enable/Disable&lt;/b&gt; Default Documents&lt;/p&gt;  &lt;p&gt;- Additionally, you can also &lt;b&gt;Add &lt;/b&gt;a new Default Document or &lt;b&gt;Remove&lt;/b&gt; one from the list. &lt;/p&gt;  &lt;p&gt;- The default document continues to be an ordered collection in IIS7 as well. You can select a document in the list view and &lt;b&gt;Move it Up or Down&lt;/b&gt; in the list&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Quick note about default documents and performance: &lt;/b&gt;For each request made to the server without a specific document, the web server reads the list of default documents and looks for each file in the content path until it finds the first match. If you use one default document or use the first document in the list, this speeds up the request time. &lt;/p&gt;  &lt;p&gt;Next blog in the series: &lt;a href="http://blogs.iis.net/nitashav/archive/2010/05/13/iis6-0-ui-vs-iis7-x-ui-series-directory-browsing.aspx"&gt;Directory Browsing&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As always, please drop a comment if there are any specific UI modules/properties you would like to be compared next and also if you have any feedback on the level of detail.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3793361" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS7.x UI Series: Authentication Methods Wrap!</title><link>http://blogs.iis.net/nitashav/archive/2010/03/29/iis6-0-ui-vs-iis7-x-ui-series-authentication-methods-wrap.aspx</link><pubDate>Mon, 29 Mar 2010 21:19:25 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3757285</guid><dc:creator>NitashaV</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3757285</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/03/29/iis6-0-ui-vs-iis7-x-ui-series-authentication-methods-wrap.aspx#comments</comments><description>&lt;p&gt;This week in the blog series (Introduction to the series – &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;here&lt;/a&gt;), let’s wrap up side by side UI comparison between IIS6.0 and IIS7.x authentication methods. &lt;/p&gt;  &lt;p&gt;For side by side comparison on Authentication methods, we have covered &lt;a href="http://blogs.iis.net/nitashav/archive/2010/02/15/iis6-0-ui-vs-iis7-x-ui-series-anonymous-authentication.aspx"&gt;Anonymous Authentication&lt;/a&gt;, &lt;a href="http://blogs.iis.net/nitashav/archive/2010/02/22/iis6-0-ui-vs-iis7-x-ui-series-basic-authentication.aspx"&gt;Basic Authentication&lt;/a&gt;, &lt;a href="http://blogs.iis.net/nitashav/archive/2010/03/08/iis6-0-ui-vs-iis7-x-ui-series-digest-authentication.aspx"&gt;Digest Authentication&lt;/a&gt; and &lt;a href="http://blogs.iis.net/nitashav/archive/2010/03/12/iis6-0-ui-vs-iis7-x-ui-series-integrated-windows-authentication.aspx"&gt;Integrated Windows Authentication&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There are a couple of IIS6.0 Authentication methods that are &lt;u&gt;not supported&lt;/u&gt; on IIS7.x:&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;.Net Passport authentication&lt;/b&gt; was retired in W2K8. Passport support is not included in W2K8 and so .Net Passport authentication is not supported on IIS7.x&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;IIS 6.0 Digest Authentication&lt;/b&gt; is not supported on W2K8, only Advanced Digest authentication is supported. Digest Authentication in IIS7.x&amp;#160; maps to Advanced Digest Authentication in IIS 6.0&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In addition, IIS7.0 applications using ASP.Net Integrated mode use a unified (between IIS and ASP.NET) authentication model. When ASP.Net is installed, another authentication method is also available:&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;Forms Authentication: &lt;/b&gt;Forms authentication uses client-side redirection to forward unauthenticated users to an HTML form where they can enter their credentials, which are usually a user name and password. After the credentials are validated, users are redirected to the page they originally requested. You can learn more about forms authentication at: &lt;a href="http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/"&gt;http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As I wrap up Authentication methods, &lt;b&gt;quick note about Client Certificate Authentication.&lt;/b&gt; This authentication methods adds SSL security through client and server certificates. It requires SSL to be configured for the site.&amp;#160; This feature surfaces under Secure Communications section in IIS6 UI and split in IIS7 UI between SSL Settings and Server Certificates. I will cover side by side comparison of these sections in a separate blog. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next blog in the series: &lt;a href="http://blogs.iis.net/nitashav/archive/2010/04/19/iis6-0-ui-vs-iis7-x-ui-series-default-document.aspx"&gt;Default Document&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As always, please drop a comment if there are any specific UI modules/properties you would like to be compared next and also if you have any feedback on the level of detail.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3757285" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS7.x UI Series: Integrated Windows Authentication</title><link>http://blogs.iis.net/nitashav/archive/2010/03/12/iis6-0-ui-vs-iis7-x-ui-series-integrated-windows-authentication.aspx</link><pubDate>Sat, 13 Mar 2010 00:39:54 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3728926</guid><dc:creator>NitashaV</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3728926</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/03/12/iis6-0-ui-vs-iis7-x-ui-series-integrated-windows-authentication.aspx#comments</comments><description>&lt;p&gt;This week in the blog series (Introduction to the series – &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;here&lt;/a&gt;), let’s talk about Integrated Windows Authentication feature in IIS6 UI and compare it to IIS7.x UI.&lt;/p&gt;  &lt;p&gt;Integrated windows authentication was known as NTLM in previous (before IIS6.0) IIS versions. This is a form of authentication that hashes the user credentials before sending across the network. &lt;/p&gt;  &lt;p&gt;Integrated Windows authentication uses Kerberos authentication and NTLM authentication. When you enable windows auth, the client submits password through cryptographic exchange with your web server that involves hashing. &lt;/p&gt;  &lt;p&gt;Windows auth is best suited for intranet where machines client and server are all on same domain and might not work over http connections.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Integrated Windows Authentication feature in IIS6.0&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Integrated Windows Authentication is the Default Authentication in W2k3 (IIS6.0). More about Integrated Windows auth in IIS6 &lt;a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/523ae943-5e6a-4200-9103-9808baa00157.mspx?mfr=true"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS6 UI – Integrated Windows Authentication&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS6_IntegratedAuth_656213C8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS6_IntegratedAuth" border="0" alt="IIS6_IntegratedAuth" src="http://blogs.iis.net/blogs/nitashav/IIS6_IntegratedAuth_thumb_6893FBB0.png" width="584" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To enable, disable integrated windows authentication, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr)&lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view&lt;/p&gt;  &lt;p&gt;- Right click on the site, folder or file that you would like to enable basic authentication for and click on “Properties” from the context menu.&amp;#160; &lt;/p&gt;  &lt;p&gt;- Click on Directory Security or File Security (for a file) tab. &lt;/p&gt;  &lt;p&gt;- In the Authentication and access control section, Click on the button “Edit…”&lt;/p&gt;  &lt;p&gt;- You can now Enable/Disable Integrated windows authentication by checking/un-checking the checkbox next to “Integrated Windows authentication”&lt;/p&gt;  &lt;p&gt;- Click on all the “Ok” buttons&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Integrated Windows Authentication feature in IIS 7.x &lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Integrated Windows authentication is not part of the default IIS install. You can install it from the Security feature category through Windows Feature On and Off on Client SKUs. You can also install it from Security role service of Web Server (IIS) role in Server Manager on Server SKUs. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS7 UI – Integrated Windows Authentication &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_Auth_4EBFC581.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_ServerHomePage_Auth" border="0" alt="IIS7_ServerHomePage_Auth" src="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_Auth_thumb_13F81CAB.png" width="584" height="446" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_WindowsAuth_2BAF5411.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_WindowsAuth" border="0" alt="IIS7_WindowsAuth" src="http://blogs.iis.net/blogs/nitashav/IIS7_WindowsAuth_thumb_4A85C7EF.png" width="584" height="441" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To enable, disable integrated windows authentication, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr) &lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view &lt;/p&gt;  &lt;p&gt;- Select the site, folder or file that you would like to enable Windows authentication for in the tree view and click.&lt;/p&gt;  &lt;p&gt;- Open “Authentication” feature from the Home Page.&lt;/p&gt;  &lt;p&gt;- Select “Windows Authentication” from the Authentication page list view, you can now Enable/Disable windows auth by clicking on the Enable/Disable (toggle) link label in the Actions Pane &lt;/p&gt;  &lt;p&gt;- Optionally you can also Enable/Disable Kernel-mode authentication. By default kernel-mode auth is enabled. Click here for more information: &lt;a title="http://blogs.msdn.com/webtopics/archive/2009/01/19/service-principal-name-spn-checklist-for-kerberos-authentication-with-iis-7-0.aspx" href="http://blogs.msdn.com/webtopics/archive/2009/01/19/service-principal-name-spn-checklist-for-kerberos-authentication-with-iis-7-0.aspx"&gt;http://blogs.msdn.com/webtopics/archive/2009/01/19/service-principal-name-spn-checklist-for-kerberos-authentication-with-iis-7-0.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- Click Ok on the Advanced Settings dialog when done.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next blog in the series: &lt;a href="http://blogs.iis.net/nitashav/archive/2010/03/29/iis6-0-ui-vs-iis7-x-ui-series-authentication-methods-wrap.aspx"&gt;Wrap up authentication&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As always, please drop a comment if there are any specific UI modules/properties you would like to be compared next and also if you have any feedback on the level of detail.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3728926" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS7.x UI Series: Digest Authentication</title><link>http://blogs.iis.net/nitashav/archive/2010/03/08/iis6-0-ui-vs-iis7-x-ui-series-digest-authentication.aspx</link><pubDate>Tue, 09 Mar 2010 02:16:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3720184</guid><dc:creator>NitashaV</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3720184</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/03/08/iis6-0-ui-vs-iis7-x-ui-series-digest-authentication.aspx#comments</comments><description>&lt;p&gt;This week in the blog series (Introduction to the series – &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;here&lt;/a&gt;), let’s talk about Digest Authentication feature in IIS6 UI and compare it to IIS7.x UI.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Digest Authentication feature in IIS6.0&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Digest Authentication provides the same functionality as Basic Authentication, except that it provides a way to ensure the username and password are not send as plain text over the network. Digest Authentication sends credentials using MD5 hash, the username and password cannot be deciphered from these hashes.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS6 UI – Digest Authentication&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS6_DigestAuth_63BABC70.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS6_DigestAuth" border="0" alt="IIS6_DigestAuth" src="http://blogs.iis.net/blogs/nitashav/IIS6_DigestAuth_thumb_50998FC4.png" width="584" height="412" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To enable, disable digest authentication, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr)&lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view&lt;/p&gt;  &lt;p&gt;- Right click on the site, folder or file that you would like to enable basic authentication for and click on “Properties” from the context menu.&amp;#160; &lt;/p&gt;  &lt;p&gt;- Click on Directory Security or File Security (for a file) tab. &lt;/p&gt;  &lt;p&gt;- In the Authentication and access control section, Click on the button “Edit…”&lt;/p&gt;  &lt;p&gt;- You can now Enable/Disable digest authentication by checking/un-checking the checkbox next to “Digest authentication for Windows domain servers”&lt;/p&gt;  &lt;p&gt;- In the realm box, enter the realm name or click the “Select…” button to browse for Domain&lt;/p&gt;  &lt;p&gt;- Click on all the “Ok” buttons&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;b&gt;NOTE about &lt;a href="http://technet.microsoft.com/en-us/library/cc783131(WS.10).aspx"&gt;Advanced Digest Authentication&lt;/a&gt;&lt;/b&gt;&lt;/strong&gt;&lt;strong&gt;: &lt;/strong&gt;Under Advanced Digest Auth, user credentials are stored on the domain controller as an MD5 hash.Advanced Authentication is enabled by default on a clean IIS6.0 install. UseDigestSSP metabase property should be set to TRUE for Advanced Digest auth to be enabled.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Digest Authentication feature in IIS 7.x&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;IIS7.x no longer supports the IIS 6.0 Digest Authentication, it supports &lt;a href="http://technet.microsoft.com/en-us/library/cc783131(WS.10).aspx"&gt;Advanced Digest Authentication&lt;/a&gt; in IIS 6.0 instead. If successful, Digest Auth authenticates the request with a Windows token corresponding to the user’s Active Directory account.&lt;/p&gt;  &lt;p&gt;Digest authentication is not part of the default IIS install. You can install it from the Security feature category through Windows Feature On and Off on Client SKUs. You can also install it from Security role service of Web Server (IIS) role in Server Manager on Server SKUs. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS7 UI – Digest Authentication&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_Auth_48A1ED62.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_ServerHomePage_Auth" border="0" alt="IIS7_ServerHomePage_Auth" src="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_Auth_thumb_4E105E06.png" width="584" height="446" /&gt;&lt;/a&gt; &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_DigestAuth_45AC88AF.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_DigestAuth" border="0" alt="IIS7_DigestAuth" src="http://blogs.iis.net/blogs/nitashav/IIS7_DigestAuth_thumb_049E094B.png" width="584" height="449" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To enable, disable digest authentication, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr) &lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view &lt;/p&gt;  &lt;p&gt;- Select the site, folder or file that you would like to enable digest authentication for in the tree view and click.&lt;/p&gt;  &lt;p&gt;- Open “Authentication” feature from the Home Page.&lt;/p&gt;  &lt;p&gt;- Select “Digest Authentication” from the Authentication page list view, you can now Enable/Disable digest auth by clicking on the Enable/Disable (toggle) link label in the Actions Pane &lt;/p&gt;  &lt;p&gt;- Optionally you can also add a realm name using the Edit … action. This realm will be used by the web server to authenticate a client trying to access a URL with Digest auth enabled.&lt;/p&gt;  &lt;p&gt;- Click Ok on the Edit Digest Authentication Settings dialog when done.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next blog in the series: &lt;a href="http://blogs.iis.net/nitashav/archive/2010/03/12/iis6-0-ui-vs-iis7-x-ui-series-integrated-windows-authentication.aspx"&gt;Integrated Windows Authentication&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As always, please drop a comment if there are any specific UI modules/properties you would like to be compared next and also if you have any feedback on the level of detail.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3720184" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS7.x UI Series: Basic Authentication</title><link>http://blogs.iis.net/nitashav/archive/2010/02/22/iis6-0-ui-vs-iis7-x-ui-series-basic-authentication.aspx</link><pubDate>Tue, 23 Feb 2010 03:18:12 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3694728</guid><dc:creator>NitashaV</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3694728</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/02/22/iis6-0-ui-vs-iis7-x-ui-series-basic-authentication.aspx#comments</comments><description>&lt;p&gt;This week in the blog series (Introduction to the series – &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;here&lt;/a&gt;), let’s talk about Basic Authentication feature in IIS6 UI and compare it to IIS7.x UI.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Basic Authentication feature in IIS6.0&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Basic Authentication prompts the user for a username and password which is then sent unencrypted over the network. The password is sent in plain text Base64-encoding. If this password is intercepted over the network by a network sniffer, an unauthorized user can decide the username and password and re-use it. This authentication method is not recommended unless you (the user) are sure that the connection between the user and the web server is secured (using SSL or a direct connection for example)&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS6 UI – Basic Authentication&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS6_BasicAuth_3888A19A.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS6_BasicAuth" border="0" alt="IIS6_BasicAuth" src="http://blogs.iis.net/blogs/nitashav/IIS6_BasicAuth_thumb_2C1A7E71.png" width="584" height="531" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To enable, disable basic authentication, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr)&lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view&lt;/p&gt;  &lt;p&gt;- Right click on the site, folder or file that you would like to enable basic authentication for and click on “Properties” from the context menu.&amp;#160; &lt;/p&gt;  &lt;p&gt;- Click on Directory Security or File Security (for a file) tab. &lt;/p&gt;  &lt;p&gt;- In the Authentication and access control section, Click on the button “Edit…”&lt;/p&gt;  &lt;p&gt;- You can now Enable/Disable basic authentication by checking/un-checking the checkbox next to “Basic authentication (password is sent in clear text)”&lt;/p&gt;  &lt;p&gt;- Click “Yes” on the pop-up dialog to confirm that you know the password will be sent across unencrypted and would like to proceed.&lt;/p&gt;  &lt;p&gt;- In the “Default domain” textbox: either type the domain name you want to use or Select one using the Browse button. If the domain name is left blank, IIS uses the domain of the computer/server that is running IIS as the default domain.&lt;/p&gt;  &lt;p&gt;- Click on all the “Ok” buttons&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Basic Authentication feature in IIS 7.x&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The key difference between IIS 6.x and IIS7.x: Basic authentication is not part of the default IIS install. You can install it from the Security feature category through Windows Feature On and Off on Client SKUs. You can also install it from Security role service of Web Server (IIS) role in Server Manager on Server SKUs. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS7 UI – Basic Authentication&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_Auth_1D039F97.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_ServerHomePage_Auth" border="0" alt="IIS7_ServerHomePage_Auth" src="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_Auth_thumb_10D1FFA3.png" width="584" height="446" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_BasicAuth_365B7D04.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_BasicAuth" border="0" alt="IIS7_BasicAuth" src="http://blogs.iis.net/blogs/nitashav/IIS7_BasicAuth_thumb_3C36209D.png" width="584" height="449" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To enable, disable basic authentication, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr) &lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view &lt;/p&gt;  &lt;p&gt;- Select the site, folder or file that you would like to enable basic authentication for in the tree view and click.&lt;/p&gt;  &lt;p&gt;- Open “Authentication” feature from the Home Page.&lt;/p&gt;  &lt;p&gt;- Select “Basic Authentication” from the Authentication page list view, you can now Enable/Disable basic auth by clicking on the Enable/Disable (toggle)link label in the Actions Pane &lt;/p&gt;  &lt;p&gt;- If you would like to change the Default domain or Realm (will be indicated to the client for information only, not used by web server for logon), click the “Edit…” link label from the Actions pane.&lt;/p&gt;  &lt;p&gt;- Click Ok on the Edit Basic Authentication Settings dialog when done.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next blog in the series: &lt;a href="http://blogs.iis.net/nitashav/archive/2010/03/08/iis6-0-ui-vs-iis7-x-ui-series-digest-authentication.aspx"&gt;Digest Authentication&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As always, please drop a comment if there are any specific UI modules/properties you would like to be compared next and also if you have any feedback on the level of detail.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3694728" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS7.x UI Series: Anonymous Authentication</title><link>http://blogs.iis.net/nitashav/archive/2010/02/15/iis6-0-ui-vs-iis7-x-ui-series-anonymous-authentication.aspx</link><pubDate>Mon, 15 Feb 2010 22:29:20 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3681121</guid><dc:creator>NitashaV</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3681121</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/02/15/iis6-0-ui-vs-iis7-x-ui-series-anonymous-authentication.aspx#comments</comments><description>&lt;p&gt;This week in the blog series (Introduction to the series – &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;here&lt;/a&gt;), let’s talk about Anonymous Authentication feature in IIS6 UI and compare it to IIS7.x UI.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Anonymous Authentication feature in IIS6.0&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Anonymous authentication gives users access to the public areas of your Web/FTP site without prompting the user for username/password. When a user tries to connect to your site, the web server (IIS) assigns the connection to the Windows user account IUSR_computername (computername is the name of the machine where IIS is running). By default this user is included in the Users and Guests user groups.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS6 UI – Anonymous Authentication&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS6_Authentication_5AC06FF5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS6_Authentication" border="0" alt="IIS6_Authentication" src="http://blogs.iis.net/blogs/nitashav/IIS6_Authentication_thumb_78BE7DE9.png" width="584" height="615" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To enable, disable anonymous authentication, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr)&lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view&lt;/p&gt;  &lt;p&gt;- Right click on the site, folder or file that you would like to enable anonymous authentication for and click on “Properties” from the context menu.&amp;#160; &lt;/p&gt;  &lt;p&gt;- Click on Directory Security or File Security (for a file) tab. &lt;/p&gt;  &lt;p&gt;- In the Authentication and access control section, Click on the button “Edit…”&lt;/p&gt;  &lt;p&gt;- You can now Enable/Disable anonymous access by checking/un-checking the checkbox next to “Enable anonymous access”&lt;/p&gt;  &lt;p&gt;- If you would like to change the Windows user account for anonymous access (from IUSR_computername), click the “Browse…” button and specify the new anonymous user identity.&lt;/p&gt;  &lt;p&gt;- Click on all the “Ok” buttons&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Anonymous Authentication feature in IIS 7.x&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;There are a couple of security account changes in IIS7.x, the article &lt;a href="http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/"&gt;http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/&lt;/a&gt; talks about this change in more detail. &lt;/p&gt;  &lt;p&gt;- IUSR: the anonymous user is now IUSR instead of IUSR_computername in IIS 6.0.&amp;#160;&amp;#160; The anonymous user is always the same and this account is built into Windows. IIS no longer needs to control the password - (it doesn't really have a password)&lt;/p&gt;  &lt;p&gt;- IIS_IUSRS : is a new built-in user group, replaces the IIS_WPG user group in IIS 6.0&lt;/p&gt;  &lt;p&gt;Apart from the account changes, IIS 7.x also enables designating the Application pool identity as the&amp;#160; anonymous user account. This main advantage of using the application pool identity as the anonymous user is that you do not have to manage security for another user account.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS7 UI – Anonymous Authentication&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_Auth_42D988CF.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_ServerHomePage_Auth" border="0" alt="IIS7_ServerHomePage_Auth" src="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_Auth_thumb_0F311C71.png" width="584" height="446" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_AnonymousAuth_54D5A68F.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_AnonymousAuth" border="0" alt="IIS7_AnonymousAuth" src="http://blogs.iis.net/blogs/nitashav/IIS7_AnonymousAuth_thumb_25A3BAF8.png" width="584" height="446" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To enable, disable anonymous authentication, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr) &lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view &lt;/p&gt;  &lt;p&gt;- Select the site, folder or file that you would like to enable anonymous authentication for in the tree view and click.&lt;/p&gt;  &lt;p&gt;- Open “Authentication” feature from the Home Page.&lt;/p&gt;  &lt;p&gt;- Select “Anonymous Authentication” from the Authentication page list view, you can now Enable/Disable anonymous access by clicking on the Enable/Disable (toggle)link label in the Actions Pane &lt;/p&gt;  &lt;p&gt;- If you would like to change the Windows user account for anonymous access (from IUSR), click the “Edit…” link label from the Actions pane.&lt;/p&gt;  &lt;p&gt;- You can either select the application pool identity to be the anonymous user identity or specify a specific user (clicking on the “Set…” button). Click Ok on the Edit Anonymous Authentication Credentials when done.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next blog in the series: &lt;a href="http://blogs.iis.net/nitashav/archive/2010/02/22/iis6-0-ui-vs-iis7-x-ui-series-basic-authentication.aspx"&gt;Basic Authentication&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As always, please drop a comment if there are any specific UI modules/properties you would like to be compared next and also if you have any feedback on the level of detail.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3681121" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS 7.x UI Series: More about Web Service Extensions</title><link>http://blogs.iis.net/nitashav/archive/2010/02/05/iis6-0-ui-vs-iis-7-x-ui-series-more-about-web-service-extensions.aspx</link><pubDate>Sat, 06 Feb 2010 02:46:09 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3663903</guid><dc:creator>NitashaV</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3663903</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/02/05/iis6-0-ui-vs-iis-7-x-ui-series-more-about-web-service-extensions.aspx#comments</comments><description>&lt;p&gt;This week in the blog series (Introduction to the series – &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;here&lt;/a&gt;), let’s talk about Web Service Extensions feature in IIS6 UI and compare it to the IIS7.x ISAPI and CGI Restrictions feature.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Web Service Extensions feature in IIS6.0&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;By default, the IIS6.0 server only serves static content. Features like asp, asp.net, server side includes, webdav, front page server extensions would not work unless explicitly enabled. You can configure these features (also known as Web Service Extensions) using the Web Service Extensions node in the inetmgr tree view.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS6 UI – Web Service Extensions&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/WebServiceExtensions_34A1997D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebServiceExtensions" border="0" alt="WebServiceExtensions" src="http://blogs.iis.net/blogs/nitashav/WebServiceExtensions_thumb_79D9F0A6.png" width="584" height="396" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To enable, disable a web service extension, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr)&lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view&lt;/p&gt;  &lt;p&gt;- Select&amp;#160; “Web Service Extensions” node in the tree view&lt;/p&gt;  &lt;p&gt;- You can now “Allow” or “Prohibit” any Web Service Extension.&lt;/p&gt;  &lt;p&gt;This UI also lets you Add a new Web Service extension, allow all web service extensions for a specific application and disable (“prohibit”) all web service extensions. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;ISAPI and CGI Restrictions feature in IIS 7.0&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In IIS7/7.5 UI, the web service extensions made it as a feature on the Server Home Page. Select the local server node; double click on the ISAPI and CGI restrictions feature from the Server Home Page&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/Isapi_CGI_Restrictions_HomePage_58E67DFF.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Isapi_CGI_Restrictions_HomePage" border="0" alt="Isapi_CGI_Restrictions_HomePage" src="http://blogs.iis.net/blogs/nitashav/Isapi_CGI_Restrictions_HomePage_thumb_176BCBA6.png" width="584" height="449" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS7 UI – ISAPI and CGI Restrictions&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/Isapi_CGI_Restrictions_03DE6C05.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Isapi_CGI_Restrictions" border="0" alt="Isapi_CGI_Restrictions" src="http://blogs.iis.net/blogs/nitashav/Isapi_CGI_Restrictions_thumb_7B7A96AD.png" width="584" height="446" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you would like to add handler mappings to support ISAPI extensions or CGI programs, you would allow a specific CGI program (executable) or ISAPI extension (dll) by adding it to the ISAPI CGI Restrictions list. This feature determines the execution of 3 party ISAPI / CGI code.&lt;/p&gt;  &lt;p&gt;To allow or restrict an ISAPI extension or CGI module, you would &lt;/p&gt;  &lt;p&gt;- Launch IIS Manager (run inetmgr)&lt;/p&gt;  &lt;p&gt;- Select and expand the local computer node in the tree view&lt;/p&gt;  &lt;p&gt;- Select&amp;#160; “ISAPI and CGI Restrictions” feature from the Server Home Page&lt;/p&gt;  &lt;p&gt;- You can now “Allow” or “Deny” any ISAPI extension or CGI module.&lt;/p&gt;  &lt;p&gt;This UI also lets you Add /Edit or Remove an ISAPI or CGI Restriction. This UI also lets you allow/deny of all unknown CGI and ISAPI extensions by selecting the “Edit Feature Settings…” task in the Actions pane.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next blog in the series: &lt;a href="http://blogs.iis.net/nitashav/archive/2010/02/15/iis6-0-ui-vs-iis7-x-ui-series-anonymous-authentication.aspx"&gt;Anonymous Authentication&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As always, please drop a comment if there are any specific UI modules/properties you would like to be compared next and also if you have any feedback on the level of detail.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3663903" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS7.0/IIS7.5 UI Series: Start Pages</title><link>http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-start-pages.aspx</link><pubDate>Fri, 29 Jan 2010 19:53:57 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3648878</guid><dc:creator>NitashaV</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3648878</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-start-pages.aspx#comments</comments><description>&lt;p&gt;Now that we have the &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx"&gt;series introduction&lt;/a&gt; out of the way, let’s start with the side by side comparison between the Start Pages for IIS6 vs. IIS7.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS6 UI Start Page &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;On a W2K3 machine, run “inetmgr” (Internet Information Services (IIS) Manager)&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS6UI_StartPage_306181D5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS6UI_StartPage" border="0" alt="IIS6UI_StartPage" src="http://blogs.iis.net/blogs/nitashav/IIS6UI_StartPage_thumb_6833C5F8.png" width="524" height="370" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;IIS7/IIS7.5 UI Start Page&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;On a W2K8 machine, run “inetmgr” (Internet Information Services (IIS) Manager)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_StartPage_0E29764F.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_StartPage" border="0" alt="IIS7_StartPage" src="http://blogs.iis.net/blogs/nitashav/IIS7_StartPage_thumb_6CC9D0B2.png" width="524" height="390" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You will notice &lt;b&gt;similar concepts between the 2 Start Pages&lt;/b&gt;: &lt;/p&gt;  &lt;p&gt;- Tree view with local server connection as a parent node, with FTP Sites and Web Sites.&lt;/p&gt;  &lt;p&gt;- Content Pane which provides basic information on the connections&lt;/p&gt;  &lt;p&gt;- File Menu , Navigation Bar&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The &lt;b&gt;key differences between the 2 Start Pages&lt;/b&gt;: &lt;/p&gt;  &lt;p&gt;1. The IIS7 UI has &lt;b&gt;more features&lt;/b&gt; on the Start Page, specifically&lt;/p&gt;  &lt;p&gt;- Tree view has Application Pools surfaced as a child node under Server connection node.&lt;/p&gt;  &lt;p&gt;- The IIS7 UI has a Breadcrumb Bar that is always in sync with the tree view and helps with tree view Navigation&lt;/p&gt;  &lt;p&gt;- The content pane has richer data – online resource links, IIS new feature (RSS feed from iis.net) and Connection tasks. No more right clicking on the node (Start Page in IIS7 and Internet Information Services in IIS 6) for the&amp;#160; “Connect” task&lt;/p&gt;  &lt;p&gt;2. &lt;b&gt;Home Pages&lt;/b&gt; when Clicking on each node in the tree view on IIS7 UI vs IIS 6 UI &lt;/p&gt;  &lt;p&gt;In IIS6 UI, clicking on each node provides a summary view of the node. The specific site node shows the content view of the site (same view when the site node is expanded in the tree view)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS6_HomePage_04810819.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS6_HomePage" border="0" alt="IIS6_HomePage" src="http://blogs.iis.net/blogs/nitashav/IIS6_HomePage_thumb_437288B4.png" width="584" height="396" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In IIS7 UI, clicking on each node provides a “Features View” by default. No more right click on a tree view node –&amp;gt; Properties to start updating the configuration. All configuration properties are surfaced as Features on the Home Page.Clicking on the “Content View” tab will show the same view as the expanded tree view (same behavior as IIS6 UI). &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_0D8D939A.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IIS7_ServerHomePage" border="0" alt="IIS7_ServerHomePage" src="http://blogs.iis.net/blogs/nitashav/IIS7_ServerHomePage_thumb_12FC043E.png" width="584" height="446" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3. &lt;b&gt;Where did my Web Service Extensions go from my tree view?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In IIS7/7.5 UI, the web service extensions made it as a feature on the Server Home Page. Select the local server node; double click on the ISAPI and CGI restrictions feature &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;IIS 6 UI – Web Service Extensions&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/WebServiceExtensions_6672D457.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebServiceExtensions" border="0" alt="WebServiceExtensions" src="http://blogs.iis.net/blogs/nitashav/WebServiceExtensions_thumb_457F61B0.png" width="584" height="396" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;IIS7 UI – ISAPI and CGI Restrictions&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/Isapi_CGI_Restrictions_28963CDB.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Isapi_CGI_Restrictions" border="0" alt="Isapi_CGI_Restrictions" src="http://blogs.iis.net/blogs/nitashav/Isapi_CGI_Restrictions_thumb_3523E9F7.png" width="584" height="414" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next blog in this series: &lt;a href="http://blogs.iis.net/nitashav/archive/2010/02/05/iis6-0-ui-vs-iis-7-x-ui-series-more-about-web-service-extensions.aspx"&gt;More about Web Service Extensions&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3648878" width="1" height="1"&gt;</description></item><item><title>IIS6.0 UI vs. IIS7.0/IIS7.5 UI Series: Introduction</title><link>http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx</link><pubDate>Fri, 29 Jan 2010 19:52:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3648872</guid><dc:creator>NitashaV</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3648872</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-introduction.aspx#comments</comments><description>&lt;P&gt;I tried to search for articles/blogs that do a side by side comparison between IIS 6.0 UI and IIS 7.0 UI but could not find one. Let’s fix that, shall we.&lt;/P&gt;
&lt;P&gt;This is an introduction blog to the series of side by side comparison between IIS6.0 and IIS 7.0 UI. I plan to release at least one blog a week for this series addressing one UI feature at a time. I will be focusing on the inetmgr UI on the Server SKUs (W2K3, W2K8, W2K8 R2) for snapshots, but these blogs are applicable to the client SKUs as well (XP, Vista SP1, Windows 7).&lt;/P&gt;
&lt;P&gt;This blog series will focus on a side by side comparison between the 2 Inetmgr versions (IIS6 vs. IIS7) and &lt;I&gt;not&lt;/I&gt; on the new IIS7 features. I will talk about the backend configuration differences between the modules as well (snippets). There are some good articles on &lt;A href="http://learn.iis.net/" mce_href="http://learn.iis.net"&gt;http://learn.iis.net&lt;/A&gt; that talk about the &lt;A href="http://learn.iis.net/page.aspx/121/iis-70-modules-overview/" mce_href="http://learn.iis.net/page.aspx/121/iis-70-modules-overview/"&gt;IIS 7 Module overview&lt;/A&gt;, &lt;A href="http://learn.iis.net/page.aspx/113/getting-started-with-iis-manager/" mce_href="http://learn.iis.net/page.aspx/113/getting-started-with-iis-manager/"&gt;IIS Manager overview&lt;/A&gt; and the *new* IIS7 UI features in great detail. &lt;/P&gt;
&lt;P&gt;Please drop a comment if there are any specific UI modules/properties you would like to be compared next. Also if you have any feedback on the details.&lt;/P&gt;
&lt;P&gt;Next blog in this series: &lt;A href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-start-pages.aspx" mce_href="http://blogs.iis.net/nitashav/archive/2010/01/29/iis6-0-ui-vs-iis7-0-iis7-5-ui-series-start-pages.aspx"&gt;IIS6 vs. IIS7 UI Start Pages&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3648872" width="1" height="1"&gt;</description></item><item><title>Yet another IIS Manager Module: Advertisement Module UI</title><link>http://blogs.iis.net/nitashav/archive/2010/01/07/yet-another-iis-manager-module-advertisement-module-ui.aspx</link><pubDate>Thu, 07 Jan 2010 01:54:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3602495</guid><dc:creator>NitashaV</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3602495</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/01/07/yet-another-iis-manager-module-advertisement-module-ui.aspx#comments</comments><description>&lt;p&gt;This blog post talks about the IIS Manager module to configure Advertisement &lt;a href="http://blogs.iis.net/nitashav/archive/2010/01/05/yet-another-iis7-managed-module-advertisementmodule.aspx"&gt;module&lt;/a&gt; we wrote in my previous blog.&amp;#160; &lt;/p&gt;  &lt;p&gt;There are many good blogs on iis.net that explain how to add a new IIS Manager module in detail. Few examples below: &lt;/p&gt;  &lt;p&gt;- &lt;a href="http://learn.iis.net/page.aspx/168/an-end-to-end-extensibility-example-for-iis-70-developers/"&gt;An End-to-End Extensibility Example for IIS7.0 Developers &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://learn.iis.net/page.aspx/269/how-to-create-a-simple-iis-manager-module/"&gt;How to Create a Simple IIS Manager Module&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://learn.iis.net/page.aspx/441/understanding-ui-extension-authoring/"&gt;Understanding UI Extension Authoring&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I will not go into detail and explain how to write a simple IIS Manager module. Instead will share the &lt;a href="http://blogs.iis.net/blogs/nitashav/UIAdvertisingModule.zip"&gt;code&lt;/a&gt; for you all to download and try.&lt;/p&gt;  &lt;p&gt;Here’s how you can &lt;strong&gt;&lt;b&gt;&lt;u&gt;Setup the module&lt;/u&gt;&lt;/b&gt;&lt;/strong&gt;: &lt;/p&gt;  &lt;p&gt;1) Build the UIAdvertisementModule project and copy the dll (UIAdvertisementModule.dll) under inetsrv folder &lt;/p&gt;  &lt;p&gt;2) add the module to the gac &lt;/p&gt;  &lt;p&gt;gacutil /i %windir%\System32\inetsrv\UIAdvertisementModule.dll &lt;/p&gt;  &lt;p&gt;3) add the new UI module definition to administration.config (%windir%\system32\inetsrv\config\administration.config) &lt;/p&gt;  &lt;p&gt;&amp;lt;add name=&amp;quot;Advertisment Module&amp;quot; type=&amp;quot;UIAdvertisementModule.AdvertisementModuleProvider, UIAdvertisementModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31f90957ae44b8f9&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;4) Now launch inetmgr and see the &amp;quot;Advertisements&amp;quot; feature page on the server home page - all ready to use. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Snapshots of the UI module&lt;/u&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;in action:&lt;/p&gt;  &lt;p&gt;Here’s how the inetmgr home page looks like on my Win7 client machine&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/nitashav/InetmgrHomePage_688796D5.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="InetmgrHomePage" border="0" alt="InetmgrHomePage" src="http://blogs.iis.net/blogs/nitashav/InetmgrHomePage_thumb_159C83A4.jpg" width="514" height="427" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Add NewAdvertisment dialog&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/AddNewAdvertisement_14C41DBA.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AddNewAdvertisement" border="0" alt="AddNewAdvertisement" src="http://blogs.iis.net/blogs/nitashav/AddNewAdvertisement_thumb_5EDF289F.png" width="514" height="404" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The Advertisement module list page with a couple of ads specified&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/UIModuleSnapshot_3DEBB5F8.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="UIModuleSnapshot" border="0" alt="UIModuleSnapshot" src="http://blogs.iis.net/blogs/nitashav/UIModuleSnapshot_thumb_3909023C.jpg" width="514" height="406" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Well you get the idea :) Check it out, let me know if you have any questions or run into issues. Feel free to use it for writing your own IIS extensions. &lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;h6 align="center"&gt;&amp;#160;&lt;/h6&gt;  &lt;h6 align="center"&gt;This posting is provided &amp;quot;AS IS&amp;quot; with no warranties, and confers no rights&lt;/h6&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3602495" width="1" height="1"&gt;</description></item><item><title>Yet another IIS7 managed module: AdvertisementModule</title><link>http://blogs.iis.net/nitashav/archive/2010/01/05/yet-another-iis7-managed-module-advertisementmodule.aspx</link><pubDate>Tue, 05 Jan 2010 22:05:38 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3599993</guid><dc:creator>NitashaV</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3599993</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2010/01/05/yet-another-iis7-managed-module-advertisementmodule.aspx#comments</comments><description>&lt;p&gt;This has got to be the most overdue blog ever (no kidding!) I wrote this managed module over 2 years ago using the then *new* IIS extensibility. Consider this post as my New Year resolution to get this published ;)&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Advertisement Module: the idea&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;I wrote a managed module (called it advertisement module) which can be plugged into IIS7 and show cases a &lt;em&gt;very simple example&lt;/em&gt; of how a customer can configure ads for a url and serve these when the url is requested. There are many features that can enhance this module capability like more configurable ad placement, video integration, richer content support, etc.&lt;/p&gt;  &lt;p&gt;The idea is simple: the advertisements are configurable, so the customer can specify the ads to be served for a url. The advertisement managed module is registered for a url and will insert these ads to all the pages served by the url.&lt;/p&gt;  &lt;p&gt;All the advertisements are specified in a collection in configuration. Each ad is assigned an impression (based on a criterion like level of service, money investment, business needs, etc). An ad with the highest impression has the highest probability of making it on the page when the url is requested. &lt;/p&gt;  &lt;p&gt;Let me walk you through step by step…&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Schema Definition:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The first thing to do is to define the schema for the configuration section. Below is the schema file for the advertisements section, this schema file is saved as %windir%\system32\inetsrv\config\schema\Advertisement_Schema.xml: &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom: #c3b091 1px solid; border-left: #c3b091 1px solid; background-color: #fffacd; width: 566px; height: 178px; overflow: auto; border-top: #c3b091 1px solid; border-right: #c3b091 1px solid"&gt;   &lt;pre class="csharpcode"&gt;&amp;lt;configSchema&amp;gt;
  &amp;lt;sectionSchema name=&lt;span class="str"&gt;&amp;quot;system.webServer/advertisements&amp;quot;&lt;/span&gt; &amp;gt;                   
    &amp;lt;collection addElement=&lt;span class="str"&gt;&amp;quot;add&amp;quot;&lt;/span&gt; removeElement=&lt;span class="str"&gt;&amp;quot;remove&amp;quot;&lt;/span&gt; clearElement=&lt;span class="str"&gt;&amp;quot;clear&amp;quot;&lt;/span&gt;&amp;gt;
      &amp;lt;attribute name=&lt;span class="str"&gt;&amp;quot;imageUrl&amp;quot;&lt;/span&gt; isUniqueKey=&lt;span class="str"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;string&amp;quot;&lt;/span&gt; /&amp;gt;
      &amp;lt;attribute name=&lt;span class="str"&gt;&amp;quot;navigateUrl&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;string&amp;quot;&lt;/span&gt; /&amp;gt;
      &amp;lt;attribute name=&lt;span class="str"&gt;&amp;quot;toolTip&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;string&amp;quot;&lt;/span&gt; /&amp;gt;
      &amp;lt;attribute name=&lt;span class="str"&gt;&amp;quot;impression&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;int&amp;quot;&lt;/span&gt; validationType=&lt;span class="str"&gt;&amp;quot;integerRange&amp;quot;&lt;/span&gt; validationParameter=&lt;span class="str"&gt;&amp;quot;0,1000&amp;quot;&lt;/span&gt; defaultValue=&lt;span class="str"&gt;&amp;quot;500&amp;quot;&lt;/span&gt;/&amp;gt;
    &amp;lt;/collection&amp;gt;
  &amp;lt;/sectionSchema&amp;gt;
&amp;lt;/configSchema&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;style type="text/css"&gt;






.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color:#fffacd;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;p&gt;Each advertisement element contains:&lt;/p&gt;

&lt;p&gt;- image url :path to the image aka the advertisement relative to the url (required)&lt;/p&gt;

&lt;p&gt;- navigateUrl: a url to browse to when the advertisement is clicked&lt;/p&gt;

&lt;p&gt;- tooltip : an alt text for the advertisement for when it is hovered on&lt;/p&gt;

&lt;p&gt;- impression : this is an integer between 0 and 1000 (defaults to 500)&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Add the section definition to applicationHost.config&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Once you have saved the schema file under the inetsrv\config\schema file, we need to add this section’s definition to applicationHost.config. All you need to do is add the line &amp;lt;section name=”advertisements” /&amp;gt; to the sectionGroup with the name “system.webserver”. So the applicationHost.config will look like: &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style="border-bottom: #c3b091 1px solid; border-left: #c3b091 1px solid; background-color: #fffacd; width: 474px; height: 88px; overflow: auto; border-top: #c3b091 1px solid; border-right: #c3b091 1px solid"&gt;
  &lt;pre class="csharpcode"&gt;…
&amp;lt;sectionGroup name=&lt;span class="str"&gt;&amp;quot;system.webServer&amp;quot;&lt;/span&gt;&amp;gt;
        &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;advertisements&amp;quot;&lt;/span&gt; /&amp;gt;
…&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;style type="text/css"&gt;






.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color:#fffacd;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;p&gt;That’s all; the section is all defined and ready for some config data, a sample of how the configuration looks like for this section below: &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style="border-bottom: #c3b091 1px solid; border-left: #c3b091 1px solid; background-color: #fffacd; width: 577px; height: 111px; overflow: auto; border-top: #c3b091 1px solid; border-right: #c3b091 1px solid"&gt;
  &lt;pre class="csharpcode"&gt;&amp;lt;system.webserver&amp;gt;
    &amp;lt;advertisements&amp;gt;
            &amp;lt;add imageUrl=&lt;span class="str"&gt;&amp;quot;\welcome.png&amp;quot;&lt;/span&gt; navigateUrl=&lt;span class="str"&gt;&amp;quot;http://www.iis.net&amp;quot;&lt;/span&gt; toolTip=&lt;span class="str"&gt;&amp;quot;Click here to check out IIS7&amp;quot;&lt;/span&gt; impression=&lt;span class="str"&gt;&amp;quot;500&amp;quot;&lt;/span&gt; /&amp;gt;
        &amp;lt;/advertisements&amp;gt;
&amp;lt;/system.webserver&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;style type="text/css"&gt;






.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color:#fffacd;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Advertisement module (details and code)&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Let’s start the fun part! We have the configuration, we know how to configure and add advertisements for a url. Now let’s write the managed module that will use these configuration settings.&lt;/p&gt;

&lt;p&gt;This managed module intercepts all responses to htm/html or aspx pages and places advertisements on the page. So we would need to register a post authorize event and write the event handler code.&lt;/p&gt;

&lt;p&gt;Currently this module only supports images as ads; the images are added to a fixed position (top center) on the page. &lt;/p&gt;

&lt;p&gt;The GetAdvertisement method gets all the advertisements from configuration, decides which advertisement to place on the page based on the impression number and reads that particular ad from the config. The ad is randomly picked from the collection of ads for the url. The probability of an individual ad being picked depends on its “impression” value. The higher the impression value, the higher the chance for the ad to be picked for the page.&amp;#160; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;:&lt;/p&gt;

&lt;div style="border-bottom: #c3b091 1px solid; border-left: #c3b091 1px solid; background-color: #fffacd; width: 564px; height: 542px; overflow: auto; border-top: #c3b091 1px solid; border-right: #c3b091 1px solid"&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.Web.Administration;

&lt;span class="kwrd"&gt;class&lt;/span&gt; AdvertisementModule : IHttpModule
{

    &lt;span class="preproc"&gt;#region&lt;/span&gt; IHttpModule Members        
    &lt;span class="kwrd"&gt;int&lt;/span&gt; index, maxVal, randomVal, tempVal = 0;
    &lt;span class="kwrd"&gt;string&lt;/span&gt; adImageUrl, adNavigateUrl, adToolTip = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;    
    &lt;span class="kwrd"&gt;string&lt;/span&gt; html_addOn;   

    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Dispose()
    {

    }

    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Init(HttpApplication context)
    {     
        context.PostAuthorizeRequest += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(&lt;span class="kwrd"&gt;this&lt;/span&gt;.GetAdvertisement);           
    }   
   
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetAdvertisement(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
    {
        HttpApplication app = (HttpApplication)sender;
        HttpContext context = app.Context;
        HttpResponse response = context.Response;

        &lt;span class="kwrd"&gt;if&lt;/span&gt; ((app.Request.Path.EndsWith(&lt;span class="str"&gt;&amp;quot;.htm&amp;quot;&lt;/span&gt;)) || (app.Request.Path.EndsWith(&lt;span class="str"&gt;&amp;quot;.html&amp;quot;&lt;/span&gt;))||(app.Request.Path.EndsWith(&lt;span class="str"&gt;&amp;quot;.aspx&amp;quot;&lt;/span&gt;)))
        {       
            ConfigurationSection section = WebConfigurationManager.GetSection(&lt;span class="str"&gt;&amp;quot;system.webServer/advertisements&amp;quot;&lt;/span&gt;);
            ConfigurationElementCollection coll = section.GetCollection();
            
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (coll.Count &amp;gt; 0)
            {
                &lt;span class="rem"&gt;//getting the total of the impressions, using this as MaxVal for the random number generation                                        &lt;/span&gt;
                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; coll.Count; i++)
                {
                    maxVal += (&lt;span class="kwrd"&gt;int&lt;/span&gt;)coll[i].GetAttributeValue(&lt;span class="str"&gt;&amp;quot;impression&amp;quot;&lt;/span&gt;);
                }
                Random random = &lt;span class="kwrd"&gt;new&lt;/span&gt; Random();
                randomVal = random.Next(0, maxVal + 1);
                
                &lt;span class="rem"&gt;//getting the index of the advertisement to read from config            &lt;/span&gt;
                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; j = 0; j &amp;lt; coll.Count; j++)
                {
                    tempVal += (&lt;span class="kwrd"&gt;int&lt;/span&gt;)coll[j].GetAttributeValue(&lt;span class="str"&gt;&amp;quot;impression&amp;quot;&lt;/span&gt;);
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (tempVal &amp;gt;= randomVal)
                    {
                        index = j;
                        &lt;span class="kwrd"&gt;break&lt;/span&gt;;
                    }
                }

                &lt;span class="rem"&gt;//reset&lt;/span&gt;
                maxVal = 0; 
                randomVal = 0;
                tempVal = 0;

                ReadAdFromConfig(index); &lt;span class="rem"&gt;//read ad details from config&lt;/span&gt;

                &lt;span class="rem"&gt;//form the html for the advertisement and add it to the response&lt;/span&gt;
                response.Write(&lt;span class="str"&gt;&amp;quot;&amp;lt;div align=\&amp;quot;center\&amp;quot; style=\&amp;quot;border: 0px width: 800px height: 254px overflow:visible\&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;);
                &lt;span class="rem"&gt;//objectCall = &amp;quot;&amp;lt;object classid=\&amp;quot;clsid:25336920-03F9-11CF-8FD0-00AA00686F13\&amp;quot; height=\&amp;quot;20%\&amp;quot; width=\&amp;quot;100%\&amp;quot; type=\&amp;quot;image/text\&amp;quot;&amp;gt;&amp;quot;; //data=\&amp;quot;{0}\&amp;quot; &amp;gt;&amp;quot;;&lt;/span&gt;
                
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (adNavigateUrl == &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty)
                {
                    html_addOn = &lt;span class="str"&gt;&amp;quot;&amp;lt;img border=\&amp;quot;0\&amp;quot; src=\&amp;quot;{0}\&amp;quot; width=\&amp;quot;800\&amp;quot; height=\&amp;quot;100\&amp;quot; alt=\&amp;quot;{1}\&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;;
                    response.Write(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(html_addOn, adImageUrl, adToolTip));
                } &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (adToolTip == &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty){
                    html_addOn = &lt;span class="str"&gt;&amp;quot;&amp;lt;img border=\&amp;quot;0\&amp;quot; src=\&amp;quot;{0}\&amp;quot; width=\&amp;quot;800\&amp;quot; height=\&amp;quot;100\&amp;quot; &amp;gt;&amp;quot;&lt;/span&gt;;
                    response.Write(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(html_addOn, adImageUrl));
                } &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                    html_addOn = &lt;span class="str"&gt;&amp;quot;&amp;lt;a href=\&amp;quot;{0}\&amp;quot;&amp;gt;&amp;lt;img border=\&amp;quot;0\&amp;quot; src=\&amp;quot;{1}\&amp;quot; width=\&amp;quot;800\&amp;quot; height=\&amp;quot;100\&amp;quot; alt=\&amp;quot;{2}\&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;quot;&lt;/span&gt;;
                    response.Write(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(html_addOn, adNavigateUrl, adImageUrl, adToolTip));
                }              
                response.Write(&lt;span class="str"&gt;&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;/span&gt;);                
            }
        }
    }

    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ReadAdFromConfig(&lt;span class="kwrd"&gt;int&lt;/span&gt; index)
    {
        &lt;span class="rem"&gt;//Get the url for the ad, insert the correct html text and return               &lt;/span&gt;
        ConfigurationSection section = WebConfigurationManager.GetSection(&lt;span class="str"&gt;&amp;quot;system.webServer/advertisements&amp;quot;&lt;/span&gt;);
        ConfigurationElementCollection coll = section.GetCollection();               
        adImageUrl = coll[index].GetAttributeValue(&lt;span class="str"&gt;&amp;quot;imageUrl&amp;quot;&lt;/span&gt;).ToString();
        adNavigateUrl = coll[index].GetAttributeValue(&lt;span class="str"&gt;&amp;quot;navigateUrl&amp;quot;&lt;/span&gt;).ToString();
        adToolTip = coll[index].GetAttributeValue(&lt;span class="str"&gt;&amp;quot;toolTip&amp;quot;&lt;/span&gt;).ToString();
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (adToolTip == &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty)
        {
            adToolTip = adNavigateUrl;
        }               
    }       
   
    &lt;span class="preproc"&gt;#endregion&lt;/span&gt;
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Build and copy the module dll (AdvertisementModule.dll) to the bin folder under the site's physical path (for eg, for Default web site, this dll will be copied to %windir%\inetpub\wwwroot\bin)&lt;/p&gt;

&lt;p&gt;Now, add this managed module to the site's web.config. Snapshot of the web.config file: &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style="border-bottom: #c3b091 1px solid; border-left: #c3b091 1px solid; background-color: #fffacd; width: 551px; height: 202px; overflow: auto; border-top: #c3b091 1px solid; border-right: #c3b091 1px solid"&gt;
  &lt;pre class="csharpcode"&gt;&amp;lt;?xml version=&lt;span class="str"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; encoding=&lt;span class="str"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;?&amp;gt;
&amp;lt;configuration&amp;gt;
    &amp;lt;system.webServer&amp;gt;
        &amp;lt;modules&amp;gt;
            &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;MyAdModule&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;AdvertisementModule&amp;quot;&lt;/span&gt; /&amp;gt;
        &amp;lt;/modules&amp;gt;             
      &amp;lt;advertisements&amp;gt;
            &amp;lt;add imageUrl=&lt;span class="str"&gt;&amp;quot;\welcome.png&amp;quot;&lt;/span&gt; navigateUrl=&lt;span class="str"&gt;&amp;quot;http://www.iis.net&amp;quot;&lt;/span&gt; toolTip=&lt;span class="str"&gt;&amp;quot;Click here to check out IIS7&amp;quot;&lt;/span&gt; impression=&lt;span class="str"&gt;&amp;quot;500&amp;quot;&lt;/span&gt; /&amp;gt;
        &amp;lt;/advertisements&amp;gt;
    &amp;lt;/system.webServer&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Now, just make a request to an htm/html or aspx page on this site and watch your module go!&lt;/p&gt;

&lt;p&gt;A snapshot of this module in action below…&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/Snapshot_3B2D7A9C.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Snapshot" border="0" alt="Snapshot" src="http://blogs.iis.net/blogs/nitashav/Snapshot_thumb_4D95CB51.png" width="558" height="406" /&gt;&lt;/a&gt; &lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Next up I will post the Advertisement inetmgr UI module to configure the advertisements section. &lt;/p&gt;
&lt;style type="text/css"&gt;






.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color:#fffacd;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3599993" width="1" height="1"&gt;</description></item><item><title>WebPI Contextual Install</title><link>http://blogs.iis.net/nitashav/archive/2009/12/29/webpi-contextual-install.aspx</link><pubDate>Tue, 29 Dec 2009 23:46:56 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3588472</guid><dc:creator>NitashaV</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3588472</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2009/12/29/webpi-contextual-install.aspx#comments</comments><description>&lt;p&gt;As you all know, WebPI offers a rich set products and applications and continues to offer more. One of my favorite features in WebPI (it’s been in PI since its v1 days) is called Contextual Install. This feature provides a seamless experience for customers to get the product(s) they want from PI rather than searching for it in the ever growing PI offerings. &lt;/p&gt;  &lt;p&gt;Contextual install opens WebPI directly on the product details page with the product(s) added to the WebPI install cart. If multiple products are specified, all of these are added to the install cart and WebPI opens on the details page of the first product in the list. &lt;/p&gt;  &lt;p&gt;WebPI v2 RTW is localized and offers localized installers for products and applications. You can use WebPI contextual install feature to include non English installers to the install cart install. For each contextual install call, you can only specify a single language. The list of language ids supported by WebPI at the end of this blog.&lt;/p&gt;  &lt;p&gt;This feature is not supported for custom feeds.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Snapshot of WebPI contextual install if the product (or application) is supported on the machine: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appsxml=http%3a%2f%2fwww.microsoft.com%2fweb%2fwebpi%2f2.0%2fWebApplicationList.xml&amp;amp;appid=DasBlog"&gt;http://www.microsoft.com/web/gallery/install.aspx?appsxml=http%3a%2f%2fwww.microsoft.com%2fweb%2fwebpi%2f2.0%2fWebApplicationList.xml&amp;amp;appid=DasBlog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/CE_AppInstall_7CC2D0EC.png"&gt;&lt;img title="CE_AppInstall" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="456" alt="CE_AppInstall" src="http://blogs.iis.net/blogs/nitashav/CE_AppInstall_thumb_02314191.png" width="602" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Snapshot of the WebPI contextual install if the product (application) is not supported:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=FastCGIIIS6"&gt;http://www.microsoft.com/web/gallery/install.aspx?appid=FastCGIIIS6&lt;/a&gt; on a w2k8 machine&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/nitashav/NotSupported_47D5CBAF.png"&gt;&lt;img title="NotSupported" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="444" alt="NotSupported" src="http://blogs.iis.net/blogs/nitashav/NotSupported_thumb_66AC3F8D.png" width="602" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;There are a couple of ways this feature can be used by WebPI v2 RTW users, WebPI UI behavior is the same for all:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; - using WebPI exe (WebPlatformInstaller.exe)&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; - using WebPI handler (wpi://)&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; - using Web App Gallery (http://www.microsoft.com/web/gallery/install.aspx). This is the recommended way and is currently used for all Installs on iis.net &lt;a href="http://www.iis.net/extensions"&gt;extensions&lt;/a&gt; , &lt;a href="http://www.microsoft.com/express/sql/download/default.aspx"&gt;SQL&lt;/a&gt; and also all Web App &lt;a href="http://www.microsoft.com/web/gallery/featured.aspx"&gt;Gallery&lt;/a&gt; apps&lt;/p&gt;  &lt;p&gt;Read on to see few examples for each below… &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Using the WebPI exe: &lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Syntax&lt;/b&gt;: WebPlatformInstaller.exe /id &amp;lt;product id&amp;gt;[&amp;amp;&amp;lt;product id&amp;gt;…][?&amp;lt;file id&amp;gt;[&amp;amp;&amp;lt;file id&amp;gt;…]][?&amp;lt;language id&amp;gt;]&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Examples&lt;/b&gt;: &lt;/p&gt;  &lt;p&gt;- Example 1: Install a product (VWD) &lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;WebPlatformInstaller.exe /id VWD&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 2: Install products ()&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;WebPlatformInstaller.exe /id VWD&amp;amp;StaticContent&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 3: Install an app ()&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;WebPlatformInstaller.exe /id DasBlog&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 4: Install apps ()&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;WebPlatformInstaller.exe /id DasBlog&amp;amp;SugarCRM&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 7: Install a product and an app ()&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;WebPlatformInstaller.exe /id StaticContent&amp;amp;SugarCRM&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 5: Install product(s) from Media feed &lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;WebPlatformInstaller.exe /id MediaPack&amp;amp;MediaServices3?http://www.microsoft.com/web/webpi/2.0/MediaProductList.xml&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 6: Install a product in German&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;WebPlatformInstaller.exe /id VWD??de&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Using the WebPI handler: &lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Syntax&lt;/b&gt;: wpi://&amp;lt;product id&amp;gt;[&amp;amp;&amp;lt;product id&amp;gt;…][?&amp;lt;file id&amp;gt;[&amp;amp;&amp;lt;file id&amp;gt;…]][?&amp;lt;language id&amp;gt;]&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Examples&lt;/b&gt;: &lt;/p&gt;  &lt;p&gt;- Example 1: Install a product (VWD) &lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;wpi://VWD&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 2: Install products ()&lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;wpi:// VWD&amp;amp;StaticContent&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 3: Install an app ()&lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;wpi://DasBlog&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 4: Install apps ()&lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;wpi://DasBlog&amp;amp;SugarCRM&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 7: Install a product and an app ()&lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;wpi:// StaticContent&amp;amp;SugarCRM&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 5: Install product(s) from Media feed &lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;wpi://MediaPack&amp;amp;MediaServices3? http://www.microsoft.com/web/webpi/2.0/MediaProductList.xml&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 6: Install a product in German&lt;/p&gt;  &lt;p&gt;&lt;font color="#008080"&gt;wpi://VWD??de&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;For example, if your web page has a link wpi://VWD – clicking on which will launch Web PI on the client side landing on the details page for Visual Web Developer product, which will be included in the installation, since VWD is its productId. Now, you can even specify the language of the product in your hyperlink by adding ??&amp;lt;languageId&amp;gt; to the hyperlink. Thus, to make Web PI install VWD in French from a webpage, you create this link: wpi://VWD??fr&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Using the /web install page: &lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Syntax&lt;/b&gt;: http://www.microsoft.com/web/gallery/install.aspx?[appsxml=&amp;lt;file id&amp;gt;][&amp;amp;appsxml=&amp;lt;file id&amp;gt;…]appid=&amp;lt;product id&amp;gt;[%3b&amp;lt;product id&amp;gt;…][&amp;amp;applang=&amp;lt;language id&amp;gt;]&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Examples&lt;/b&gt;: &lt;/p&gt;  &lt;p&gt;- Example 1: Install a product (VWD) &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/web/gallery/install.aspx?appid=VWD&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 2: Install products (VWD and Static Content)&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/web/gallery/install.aspx?appid=VWD%3bStaticContent&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 3: Install an app (Gallery)&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/web/gallery/install.aspx?appsxml=http%3a%2f%2fwww.microsoft.com%2fweb%2fwebpi%2f2.0%2fWebApplicationList.xml&amp;amp;appid=Gallery&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 4: Install apps (DasBlog and SugarCRM)&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/web/gallery/install.aspx?appsxml=http%3a%2f%2fwww.microsoft.com%2fweb%2fwebpi%2f2.0%2fWebApplicationList.xml&amp;amp;appid=DasBlog%3bSugarCRM&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 7: Install a product and an app (Tracing and DasBlog)&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/web/gallery/install.aspx?appsxml=http%3a%2f%2fwww.microsoft.com%2fweb%2fwebpi%2f2.0%2fWebProductList.xml&amp;amp;appsxml=http%3a%2f%2fwww.microsoft.com%2fweb%2fwebpi%2f2.0%2fWebApplicationList.xml&amp;amp;appid=Tracing%3bDasBlog&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 5: Install product(s) from Media feed &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/web/gallery/install.aspx?appsxml=http%3a%2f%2fwww.microsoft.com%2fweb%2fwebpi%2f2.0%2fMediaProductList.xml&amp;amp;appid=MediaPack&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;- Example 6: Install a product in German&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;http://www.microsoft.com/web/gallery/install.aspx?appid=VWD&amp;amp;applang=de&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;List of all language ids supported by WebPI:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;en (English)    &lt;br /&gt;fr (French)     &lt;br /&gt;es (Spanish)     &lt;br /&gt;de (German)     &lt;br /&gt;it (Italian)     &lt;br /&gt;ja (Japanese)     &lt;br /&gt;ko (Korean)     &lt;br /&gt;ru (Russian)     &lt;br /&gt;zh-cn (Simplified Chinise)     &lt;br /&gt;zh-tw (Traditional Chinese)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Try these out =)&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3588472" width="1" height="1"&gt;</description></item><item><title>Is there a way to get WebPI to install Products in an offline way?</title><link>http://blogs.iis.net/nitashav/archive/2009/12/28/is-there-a-way-to-get-webpi-to-install-products-in-an-offline-way.aspx</link><pubDate>Tue, 29 Dec 2009 05:24:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3586789</guid><dc:creator>NitashaV</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=3586789</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2009/12/28/is-there-a-way-to-get-webpi-to-install-products-in-an-offline-way.aspx#comments</comments><description>&lt;p&gt;FAQ: Do I always need to be online for WebPI to download and install all the products it offers? &lt;/p&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;p&gt;Short answer: Yes&lt;/p&gt;  &lt;p&gt;FAQ: Is there a way to get webpi to install products in an offline way? &lt;/p&gt;  &lt;p&gt;Many WebPI customers have requested for this feature. While WebPI does *not* offer an offline install feature yet, there is a way to get WebPI to install products in an offline way (and help customers save some bandwidth). Read on for a few options …&lt;/p&gt;  &lt;p&gt;Connect machine to the internet and &lt;i&gt;&lt;u&gt;download&lt;/u&gt;&lt;/i&gt; all the msi components you want to install locally. Note the physical path for each of these msi components. Now you have two options to get WebPI to &lt;i&gt;&lt;u&gt;install&lt;/u&gt;&lt;/i&gt; all these components offline. &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;b&gt;Option 1: &lt;/b&gt;&lt;b&gt;&lt;i&gt;Recommended if the product(s) you are trying to install already exists in webpi feed&lt;/i&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Copy the webproductList.xml from &lt;a href="http://www.microsoft.com/web/webpi/2.0/WebProductList.xml" mce_href="http://www.microsoft.com/web/webpi/2.0/WebProductList.xml"&gt;http://www.microsoft.com/web/webpi/2.0/WebProductList.xml&lt;/a&gt; to your local machine &lt;/li&gt;    &lt;li&gt;For each Installer downloaded on your local machine, update the local copy of WebProductList.xml. Specifically, update the &amp;lt;installerURL&amp;gt; to point to the msi downloaded on the local machine. XML &lt;strong&gt;&lt;font size="2"&gt;Snippet &lt;/font&gt;&lt;/strong&gt;using SEOToolkit as an example in the &lt;a href="http://www.microsoft.com/web/webpi/2.0/WebProductList.xml" mce_href="http://www.microsoft.com/web/webpi/2.0/WebProductList.xml"&gt;webproductList.xml&lt;/a&gt; feed below: &lt;/li&gt; &lt;/ol&gt;  &lt;div style="border-right: #c3b091 1px solid; border-top: #c3b091 1px solid; overflow: auto; border-left: #c3b091 1px solid; width: 573px; border-bottom: #c3b091 1px solid; height: 146px; background-color: #fffacd"&gt;   &lt;pre class="csharpcode"&gt;&amp;lt;installerFile&amp;gt;
    &amp;lt;fileSize&amp;gt;720&amp;lt;/fileSize&amp;gt;
    &amp;lt;installerURL&amp;gt;http:&lt;span class="rem"&gt;//download.microsoft.com/download/A/C/A/ACA8D740-A59D-4D25-A2D5-1DCFD1D9A01F/IISSEO_amd64.msi &amp;lt;&lt;/span&gt;/installerURL&amp;gt; &lt;span class="rem"&gt;//location on the machine where the msi is downloaded&lt;/span&gt;
    &amp;lt;sha1&amp;gt;96306F47159E1B348075629A3FCF2D66DD221883&amp;lt;/sha1&amp;gt; &lt;span class="rem"&gt;//SHA1 hash for the installer&lt;/span&gt;
&amp;lt;/installerFile&amp;gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;ol&gt;&lt;style type="text/css"&gt;



















.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color:#fffacd;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/ol&gt;

&lt;p&gt;To: &lt;/p&gt;

&lt;div style="border-right: #c3b091 1px solid; border-top: #c3b091 1px solid; overflow: auto; border-left: #c3b091 1px solid; width: 573px; border-bottom: #c3b091 1px solid; height: 146px; background-color: #fffacd"&gt;
  &lt;pre class="csharpcode"&gt;&amp;lt;installerFile&amp;gt;
    &amp;lt;fileSize&amp;gt;720&amp;lt;/fileSize&amp;gt;
    &amp;lt;installerURL&amp;gt;C:\Users\nitashav\AppData\Local\Temp\IISSEO_amd64.msi &amp;lt;/installerURL&amp;gt; &lt;span class="rem"&gt;//location on the machine where the msi is downloaded&lt;/span&gt;
    &amp;lt;sha1&amp;gt;96306F47159E1B348075629A3FCF2D66DD221883&amp;lt;/sha1&amp;gt; &lt;span class="rem"&gt;//SHA1 hash for the installer&lt;/span&gt;
&amp;lt;/installerFile&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;font size="2"&gt;
  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 3. Save the updated WebProductList.xml file locally &lt;/p&gt;

  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 4. Run the following commands &lt;/p&gt;

  &lt;ul&gt;
    &lt;ul&gt;
      &lt;li&gt;Clear local cache: %ProgramFiles%\Microsoft\Web Platform Installer\WebPlatformInstaller.exe /reset &lt;/li&gt;

      &lt;li&gt;Launch WebPI with local WebProductList.xml: : %ProgramFiles%\Microsoft\Web Platform Installer\WebPlatformInstaller.exe &amp;lt;Path to the local WebProductList.xml file&amp;gt; &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;

  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 5. Now you can disconnect your machine from the internet and use WebPI to install the msi &lt;/p&gt;
&lt;/font&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;b&gt;Option 2: &lt;/b&gt;&lt;b&gt;&lt;i&gt;Recommended for products that are not offered using webpi &lt;/i&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Craft your own webpi feed for the products you would like webpi to install &lt;/li&gt;

  &lt;li&gt;For each Installer downloaded on your local machine, update the &amp;lt;installerURL&amp;gt; to point to the msi downloaded on the local machine. XML &lt;strong&gt;&lt;font size="2"&gt;Snippet &lt;/font&gt;&lt;/strong&gt;using the custom sampleProductFeed.xml shared &lt;a href="http://blogs.iis.net/kateroh/archive/2009/10/24/web-pi-extensibility-custom-feeds-installing-custom-products.aspx" mce_href="http://blogs.iis.net/kateroh/archive/2009/10/24/web-pi-extensibility-custom-feeds-installing-custom-products.aspx"&gt;here&lt;/a&gt; below: &lt;/li&gt;
&lt;/ol&gt;

&lt;div style="border-right: #c3b091 1px solid; border-top: #c3b091 1px solid; overflow: auto; border-left: #c3b091 1px solid; width: 573px; border-bottom: #c3b091 1px solid; height: 146px; background-color: #fffacd"&gt;
  &lt;pre class="csharpcode"&gt;&amp;lt;installerFile&amp;gt;
    &amp;lt;!-- size &lt;span class="kwrd"&gt;in&lt;/span&gt; KBs --&amp;gt;          
    &amp;lt;fileSize&amp;gt;1024&amp;lt;/fileSize&amp;gt; &lt;/pre&gt;

  &lt;pre class="csharpcode"&gt;    &amp;lt;installerURL&amp;gt;http:&lt;span class="rem"&gt;//www.contoso.com/SampleProduct_x86.msi &amp;lt;/installerURL&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;    &amp;lt;sha1&amp;gt;111222FFF000BBB444555EEEAAA777888999DDDD&amp;lt;/sha1&amp;gt; &lt;/span&gt;
&amp;lt;/installerFile&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;














.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color:#fffacd;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;To&lt;/p&gt;

&lt;div style="border-right: #c3b091 1px solid; border-top: #c3b091 1px solid; overflow: auto; border-left: #c3b091 1px solid; width: 573px; border-bottom: #c3b091 1px solid; height: 146px; background-color: #fffacd"&gt;
  &lt;pre class="csharpcode"&gt;&amp;lt;installerFile&amp;gt; 
    &amp;lt;!-- size &lt;span class="kwrd"&gt;in&lt;/span&gt; KBs --&amp;gt;
    &amp;lt;fileSize&amp;gt;1024&amp;lt;/fileSize&amp;gt;
    &amp;lt;installerURL&amp;gt;C:\Users\nitashav\AppData\Local\Temp\SampleProduct_x86.msi&amp;lt;/installerURL&amp;gt; &lt;/pre&gt;

  &lt;pre class="csharpcode"&gt;    &amp;lt;sha1&amp;gt;111222FFF000BBB444555EEEAAA777888999DDDD&amp;lt;/sha1&amp;gt;
&amp;lt;/installerFile&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;













.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color:#fffacd;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p mce_keep="true"&gt;&amp;#160;&amp;#160;&amp;#160; 3. Save the SampleProductFeed.xml file locally &lt;/p&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 4. Run the following commands &lt;/p&gt;

&lt;ol&gt;
  &lt;ul&gt;
    &lt;li&gt;&amp;#160;&amp;#160;&amp;#160; Clear local cache: %ProgramFiles%\Microsoft\Web Platform Installer\Webplatforminstaller.exe /reset &lt;/li&gt;

    &lt;li&gt;&amp;#160;&amp;#160;&amp;#160; Launch WebPI, go to the Options dialog (click the “Options” link on the main window), type the location of the SampleProductFeed.xml file and click “Add Feed” and close the dialog. &lt;/li&gt;
  &lt;/ul&gt;
&lt;/ol&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 5. Now you can disconnect your machine from the internet and use WebPI to install the sampleProduct! &lt;/p&gt;

&lt;p mce_keep="true"&gt;&lt;b&gt;A note about product Dependencies: &lt;/b&gt;If the product has any dependencies, follow the same steps to install the dependencies offline too (download each dependency and update the installerURL with the local msi location). However, if the dependency is an &lt;i&gt;iisComponent&lt;/i&gt;, it can be installed offline (there is no need to download anything for it)&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3586789" width="1" height="1"&gt;</description></item><item><title>Diagnose Failures with Remote Management</title><link>http://blogs.iis.net/nitashav/archive/2007/12/18/diagnose-failures-with-remote-management.aspx</link><pubDate>Tue, 18 Dec 2007 21:52:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:2066919</guid><dc:creator>NitashaV</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/nitashav/rsscomments.aspx?PostID=2066919</wfw:commentRss><comments>http://blogs.iis.net/nitashav/archive/2007/12/18/diagnose-failures-with-remote-management.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=center&gt;&lt;B&gt;Diagnose Failures with Remote Management&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Good place to start if you want to learn about how to configure remote administration for IIS Manager: &lt;A href="http://learn.iis.net/page.aspx/158" mce_href="http://learn.iis.net/page.aspx/158"&gt;http://learn.iis.net/page.aspx/158&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This is a long overdue blog entry. It's an attempt to help you all diagnose any issues you might come across while using Remote Manager. My assumption is that you know how to get started and have run into issues while using the Remote Manager. This is based on frequently asked questions on iis.net forums. This troubleshooting applies to all remote management (i.e. downlevel --&amp;gt; 2K8 and 2k8--&amp;gt;2k8).&lt;/P&gt;
&lt;P&gt;&lt;B&gt;1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/B&gt;&lt;B&gt;Cannot connect to the remote server?&lt;/B&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Make sure the client and the server are using the same build. For example, Server Beta 3 Remote Manager client will not work with a RC1 server build and so on... &lt;/LI&gt;
&lt;LI&gt;Refer to the blog about Remote Management Behavior Matrix located at: &lt;A href="http://blogs.iis.net/nitashav/archive/2007/04/23/remote-management-behavior-matrix.aspx" mce_href="http://blogs.iis.net/nitashav/archive/2007/04/23/remote-management-behavior-matrix.aspx"&gt;http://blogs.iis.net/nitashav/archive/2007/04/23/remote-management-behavior-matrix.aspx&lt;/A&gt; ; there might be problems because of acls.&lt;/LI&gt;
&lt;LI&gt;Look at the Event Viewer (eventvwr.msc) log: *wmsvc has a good supportability story; events are logged with detailed error message and stack trace. Most of the time, looking at the Event Viewer will tell you what the problem might be.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/B&gt;&lt;B&gt;Cannot connect to the remote server after updating *wmsvc bindings?&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;If this happens after you updated the port on which wmsvc is configured to run, check if the firewall is turned on for the server. If it is, add a new exception rule for the port on which wmsvc is running (default value: 8172). Now try connecting to the server again.&lt;/P&gt;
&lt;P mce_keep="true"&gt;If this does not solve the problem, run the following commands from cmdline &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;netsh http show sslcert&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Ensure that the port 8172 (the one on which wmsvc is running) has ssl certificate bindings. Also make sure the cert hash matches the one to which wmsvc is bound to (in the Management Service UI)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Sample output:&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;c:\&amp;gt;netsh http show sslcert&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SSL Certificate bindings:&lt;/P&gt;
&lt;P&gt;-------------------------&lt;/P&gt;
&lt;P&gt;IP:port&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.0.0.0:8172&lt;/P&gt;
&lt;P&gt;Certificate Hash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : f06ae62a5275a818338f05ecc80707335be1e204&lt;/P&gt;
&lt;P&gt;Application ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : {00000000-0000-0000-0000-000000000000}&lt;/P&gt;
&lt;P&gt;Certificate Store Name: MY&lt;/P&gt;
&lt;P&gt;Verify Client Certificate Revocation&amp;nbsp;&amp;nbsp;&amp;nbsp; : Enabled&lt;/P&gt;
&lt;P&gt;Verify Revocation Using Cached Client Certificate Only: Disabled&lt;/P&gt;
&lt;P&gt;Usage Check&amp;nbsp;&amp;nbsp;&amp;nbsp; : Enabled&lt;/P&gt;
&lt;P&gt;Revocation Freshness Time: 0&lt;/P&gt;
&lt;P&gt;URL Retrieval Timeout&amp;nbsp;&amp;nbsp; : 0&lt;/P&gt;
&lt;P&gt;Ctl Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : (null)&lt;/P&gt;
&lt;P&gt;Ctl Store Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : (null)&lt;/P&gt;
&lt;P&gt;DS Mapper Usage&amp;nbsp;&amp;nbsp;&amp;nbsp; : Disabled&lt;/P&gt;
&lt;P&gt;Negotiate Client Certificate&amp;nbsp;&amp;nbsp;&amp;nbsp; : Disabled&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;netsh http show urlacl&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Ensure that the url https://*:8172/ (port on which wmsvc is configured to run on) shows up in the list of reserved urls&lt;/P&gt;
&lt;P&gt;Sample output:&lt;/P&gt;
&lt;P&gt;c:\&amp;gt;netsh http show urlacl&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;URL Reservations:&lt;/P&gt;
&lt;P&gt;-----------------&lt;/P&gt;
&lt;P&gt;Reserved URL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : https://*:8172/&lt;/P&gt;
&lt;P&gt;User: NT SERVICE\WMSvc&lt;/P&gt;
&lt;P&gt;Listen: Yes&lt;/P&gt;
&lt;P&gt;Delegate: No&lt;/P&gt;
&lt;P&gt;SDDL: D:(A;;GX;;;S-1-5-80-257763619-1023834443-750927789-3464696139-1457670516)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If you see that bindings are not correctly configured (using netsh commands in the previous paragraph), the problem might be that the machine key does not have permissions for the administrator trying to tweak wmsvc bindings. In that case, try the following --&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Take ownership for the machine key&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;takeown /F %ProgramData%\Microsoft\Crypto\RSA\MachineKeys\bedbf0b4da5f8061b6444baedf4c00b1* /R&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;Acl the machine key such that administrators group has read permissions&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;icacls %ProgramData%\Microsoft\Crypto\RSA\MachineKeys\bedbf0b4da5f8061b6444baedf4c00b1* /grant Administrators:(R)&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;Reserve the port 8172 for wmsvc&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;netsh http add urlacl url="https://*:8172/" User="NT SERVICE\wmsvc"&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;Associate the cert with the port&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;netsh http add sslcert ipport=0.0.0.0:8172 certhash=&amp;lt;certHash&amp;gt; appid={d7d72267-fcf9-4424-9eec-7e1d8dcec9a9}&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/B&gt;&lt;B&gt;Do not want to see the prompt on client every time you connect to the remote server?&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Make sure your server uses a trusted root certificate for wmsvc. Basically create a trusted root certificate (if you don't already have it) and on the Management Service feature page assign this certificate to be used by the service. This will ensure the client does not get a prompt asking if they trust the server (since the certificate isn't trusted).&lt;/P&gt;
&lt;P&gt;4) &lt;B&gt;If all else fails:&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Post your issue on iis.net forums (&lt;A href="http://forums.iis.net/" mce_href="http://forums.iis.net/"&gt;http://forums.iis.net/&lt;/A&gt;) with repro steps and details. It would be great if you could send the eventvwr.msc log along with exception and call stack (see below for details on how to get the exception and call stack) &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Attach windbg to wmsvc.exe&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;windbg -pn wmsvc.exe&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;Load the sos.dll and set a break point if a managed exception happens&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;.loadby sos mscorwks&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;sxe clr&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;Then hit go&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;g&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;When it breaks, print the exception and the call stack and send it to us @ iis.net/forums.&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;!pe&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;!clrstack&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;*WMSVC is the service for Remote administration on the server side and can be configured in the UI in the Management Service Page. You can get some more information about this at &lt;A href="http://learn.iis.net/page.aspx/158/remote-administration-for-iis-manager/"&gt;http://learn.iis.net/page.aspx/158/remote-administration-for-iis-manager/&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=2066919" width="1" height="1"&gt;</description></item></channel></rss>