<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Levi Fleischman's Blog</title>
        <link>http://blogs.ignia.com/Levi.Fleischman/Default.aspx</link>
        <description>Practical discussion of everyday development techniques</description>
        <language>en-US</language>
        <copyright>Levi Fleischman</copyright>
        <generator>Subtext Version 2.1.1.1</generator>
        <image>
            <title>Levi Fleischman's Blog</title>
            <url>http://blogs.ignia.com/images/RSS2Image.gif</url>
            <link>http://blogs.ignia.com/Levi.Fleischman/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/LeviFleischman" /><feedburner:info uri="levifleischman" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
            <title>User Administration in .NET 4.0</title>
            <category>ASP.NET</category>
            <link>http://feedproxy.google.com/~r/LeviFleischman/~3/OJ-GCK8D2aA/iismembershipadministration.aspx</link>
            <description>&lt;p&gt;One of the handy features of IIS7 is the ability to manage users from within IIS Manager.  This can be done using the ".NET Users", ".NET Roles", ".NET Profile" applets exposed by the features view.  These are able to interact with any (strongly typed) ASP.NET Membership, Roles or Profile provider - assuming it's configured as the default provider in your web.config file.  While the interface isn't great, it's definitely functional, and these tools make it easy to jump-start a new membership application.  &lt;/p&gt;
&lt;p&gt;Unfortunately, however, these tools aren't available if your website's application pool is running under ASP.NET 4.0.  When you load IIS7, the icons related to these applets will be removed.  If you add a new application (or convert an existing application) to the ASP.NET 4.0 application pool then the icons will be available, but clicking on them will give you one of the following errors:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;This feature cannot be used because the default provider type could not be determined to check whether it is a trusted provider.&lt;/p&gt;
&lt;p&gt;You can use this feature only when the default provider is a trusted provider.  If you are a server administrator, you can make a provider a trusted provider by added the provider type to the trusted providers list in the Administration.config file.  The provider has to be strongly typed and added to the GAC (Global Assembly Cache).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;Or:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p dir="ltr"&gt;There was an error while performing this operation.&lt;/p&gt;
&lt;p dir="ltr"&gt;Details:&lt;/p&gt;
&lt;p dir="ltr"&gt;Could not load file or assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=&lt;font face=""&gt;b03f5f7f11d50a3a' or one of its dependencies.  The system cannot find the file specified.&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The first one appears if the providers' "type" attribute in the web.config does not contain a fully-qualified reference to the strongly-typed assembly (e.g., if it doesn't contain the PublicKeyToken) - which is the default provider scaffolding for Visual Studio 2010.  The latter will occur regardless of whether or not the version is set to 2.0.0.0 or 4.0.0.0.  &lt;/p&gt;
&lt;p&gt;According to &lt;a href="http://forums.iis.net/p/1166801/1940556.aspx"&gt;comments on the IIS.NET forums&lt;/a&gt;, this is due to the fact that this would require IIS to load .NET 4.0 libraries, which it apparently can't do since it's a .NET 2.0 application.  Why it's unable to load this even if you explicitly specify the 2.0.0.0 version is unclear to me, but likely has to do with how .NET handles library versions.&lt;/p&gt;
&lt;p&gt;Regardless of the cause, the solution to this is to either a) continue to use ASP.NET 2.0, or b) write a custom application interface using the provider interface - but who wants to do that?  &lt;/p&gt;
&lt;p&gt;There is one way of having the best of both worlds, however.  Since the providers typically reference an external data store (such as an XML file, web service or SQL server) it's possible to have multiple website applications accessing the same data store.  As a result, you can setup a &lt;em&gt;separate application &lt;/em&gt;in IIS which runs under the ASP.NET 2.0 application pool and can, thus, manage your users.  In fact, because IIS allows a virtual application to use a different application pool even if that application pool runs under a different version of ASP.NET, it's possible to simply setup this application as a virtual application underneath your existing website (it doesn't matter what path this points to).  The advantage to this is the virtual application will inherit the provider settings from the parent website and, thus, there is no need to decentralize the configuration of your providers.  This also eliminates the need to have a separate faux website listed in IIS; you'll still end up with a faux application, of course, but at least it's clearly associated with the parent website.  &lt;/p&gt;
&lt;p&gt;Once this is setup, you can click on the virtual application (I called mine "UserAdmin") in IIS and you'll have access to the ".NET Users", ".NET Roles" and ".NET Profile" applets again.  &lt;/p&gt;
&lt;p&gt;tags: &lt;a rel="tag" href="http://blogs.ignia.com/Levi.Fleischman/Tags/ASP.NET/Default.aspx"&gt;ASP.NET&lt;/a&gt;, &lt;a rel="tag" href="http://blogs.ignia.com/Levi.Fleischman/Tags/ASP.NET 4.0/Default.aspx"&gt;ASP.NET 4.0&lt;/a&gt;, &lt;a rel="tag" href="http://blogs.ignia.com/Levi.Fleischman/Tags/Membership Provider/Default.aspx"&gt;Membership Provider&lt;/a&gt;, &lt;a rel="tag" href="http://blogs.ignia.com/Levi.Fleischman/Tags/RoleProvider/Default.aspx"&gt;Role Provider&lt;/a&gt;, &lt;a rel="tag" href="http://blogs.ignia.com/Levi.Fleischman/Tags/Internet Information Server 7.0/Default.aspx"&gt;Internet Information Server 7.0&lt;/a&gt;, &lt;a rel="tag" href="http://blogs.ignia.com/Levi.Fleischman/Tags/IIS/Default.aspx"&gt;IIS7&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://blogs.ignia.com/Levi.Fleischman/aggbug/18.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/LeviFleischman/~4/OJ-GCK8D2aA" height="1" width="1"/&gt;</description>
            <dc:creator>Levi Fleischman</dc:creator>
            <guid isPermaLink="false">http://blogs.ignia.com/Levi.Fleischman/archive/2010/05/26/iismembershipadministration.aspx</guid>
            <pubDate>Thu, 27 May 2010 01:23:18 GMT</pubDate>
            <wfw:comment>http://blogs.ignia.com/Levi.Fleischman/comments/18.aspx</wfw:comment>
            <comments>http://blogs.ignia.com/Levi.Fleischman/archive/2010/05/26/iismembershipadministration.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ignia.com/Levi.Fleischman/comments/commentRss/18.aspx</wfw:commentRss>
        <feedburner:origLink>http://blogs.ignia.com/Levi.Fleischman/archive/2010/05/26/iismembershipadministration.aspx</feedburner:origLink></item>
        <item>
            <title>ExtJS with ADO.NET Data Services (Part 2 of 2): Sorting and Paging</title>
            <category>ASP.NET</category>
            <category>AJAX</category>
            <category>ORM/DAL</category>
            <category>ExtJS</category>
            <link>http://feedproxy.google.com/~r/LeviFleischman/~3/hCdIbomwkEM/extjs.dataservices.paging.aspx.aspx</link>
            <description>ExtJs's conventions don't directly map to those used by ADO.NET Data Services, but that doesn't mean they can't work together.  One disconnect is the syntax for sorting and paging, as expected by Ext.grid.GridPanel and Ext.PagingToolbar. This post explores options to mitigating this disconnect.&lt;img src="http://blogs.ignia.com/Levi.Fleischman/aggbug/17.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/LeviFleischman/~4/hCdIbomwkEM" height="1" width="1"/&gt;</description>
            <dc:creator>Levi Fleischman</dc:creator>
            <guid isPermaLink="false">http://blogs.ignia.com/Levi.Fleischman/archive/2009/09/11/extjs.dataservices.paging.aspx.aspx</guid>
            <pubDate>Fri, 11 Sep 2009 19:41:30 GMT</pubDate>
            <wfw:comment>http://blogs.ignia.com/Levi.Fleischman/comments/17.aspx</wfw:comment>
            <comments>http://blogs.ignia.com/Levi.Fleischman/archive/2009/09/11/extjs.dataservices.paging.aspx.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ignia.com/Levi.Fleischman/comments/commentRss/17.aspx</wfw:commentRss>
        <feedburner:origLink>http://blogs.ignia.com/Levi.Fleischman/archive/2009/09/11/extjs.dataservices.paging.aspx.aspx</feedburner:origLink></item>
        <item>
            <title>ExtJS with ADO.NET Data Services (Part 1 of 2): RESTful URLs</title>
            <category>ASP.NET</category>
            <category>AJAX</category>
            <category>ORM/DAL</category>
            <category>ExtJS</category>
            <link>http://feedproxy.google.com/~r/LeviFleischman/~3/Jn5okUU9tVM/extjs.dataservices.rest.aspx</link>
            <description>ADO.NET Data Services quickly exposes a database as a RESTful web service, including query support. This is useful for AJAX applications, such as those built with ExtJS. Unfortunately, however,while ExtJS 3.0 has built-in REST support, its conventions don’t map well to Data Services. The most obvious case is composite primary keys (e.g., "/Store.svc/Cart(UserID=1,ProductID)"). This post discusses a simple way of accomodating these.&lt;img src="http://blogs.ignia.com/Levi.Fleischman/aggbug/16.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/LeviFleischman/~4/Jn5okUU9tVM" height="1" width="1"/&gt;</description>
            <dc:creator>Levi Fleischman</dc:creator>
            <guid isPermaLink="false">http://blogs.ignia.com/Levi.Fleischman/archive/2009/09/10/extjs.dataservices.rest.aspx</guid>
            <pubDate>Thu, 10 Sep 2009 19:47:21 GMT</pubDate>
            <wfw:comment>http://blogs.ignia.com/Levi.Fleischman/comments/16.aspx</wfw:comment>
            <comments>http://blogs.ignia.com/Levi.Fleischman/archive/2009/09/10/extjs.dataservices.rest.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ignia.com/Levi.Fleischman/comments/commentRss/16.aspx</wfw:commentRss>
        <feedburner:origLink>http://blogs.ignia.com/Levi.Fleischman/archive/2009/09/10/extjs.dataservices.rest.aspx</feedburner:origLink></item>
        <item>
            <title>Dynamically Filtered Ranges in Excel</title>
            <category>Excel</category>
            <link>http://feedproxy.google.com/~r/LeviFleischman/~3/4RaXu6IEwm8/exceldynamicallyfilteredranges.aspx</link>
            <description>A common requirement in Excel is the ability to provide a dropdown list based on values the user has entered, a technique known as Cascading drop downs. For instance, a user selects "BMW" from manufacturer and the corresponding model cell provides a list of options including "M5", "Z4" and "X6".  This post examines one approach to solving this problem - although the technique can be applied to many related problems.&lt;img src="http://blogs.ignia.com/Levi.Fleischman/aggbug/15.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/LeviFleischman/~4/4RaXu6IEwm8" height="1" width="1"/&gt;</description>
            <dc:creator>Levi Fleischman</dc:creator>
            <guid isPermaLink="false">http://blogs.ignia.com/Levi.Fleischman/archive/2009/08/20/exceldynamicallyfilteredranges.aspx</guid>
            <pubDate>Thu, 20 Aug 2009 22:41:45 GMT</pubDate>
            <wfw:comment>http://blogs.ignia.com/Levi.Fleischman/comments/15.aspx</wfw:comment>
            <comments>http://blogs.ignia.com/Levi.Fleischman/archive/2009/08/20/exceldynamicallyfilteredranges.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ignia.com/Levi.Fleischman/comments/commentRss/15.aspx</wfw:commentRss>
        <feedburner:origLink>http://blogs.ignia.com/Levi.Fleischman/archive/2009/08/20/exceldynamicallyfilteredranges.aspx</feedburner:origLink></item>
        <item>
            <title>Mapping ExtJS to custom REST APIs</title>
            <category>AJAX</category>
            <category>ExtJS</category>
            <link>http://feedproxy.google.com/~r/LeviFleischman/~3/HaB72lRWc2w/extjsrest.aspx</link>
            <description>Out of the box, ExtJS expects to send and receive data in a very specific format.  Since our customer had an API intended to serve multiple different clients this wasn't practical. By writing custom LoadJson and SubmitJson actions, we were able to centralize this custom logic without the need to configure a redundant JsonReader, JsonWriter and Ajax.request() for each form.&lt;img src="http://blogs.ignia.com/Levi.Fleischman/aggbug/13.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/LeviFleischman/~4/HaB72lRWc2w" height="1" width="1"/&gt;</description>
            <dc:creator>Levi Fleischman</dc:creator>
            <guid isPermaLink="false">http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/26/extjsrest.aspx</guid>
            <pubDate>Sun, 26 Jul 2009 21:17:06 GMT</pubDate>
            <wfw:comment>http://blogs.ignia.com/Levi.Fleischman/comments/13.aspx</wfw:comment>
            <comments>http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/26/extjsrest.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ignia.com/Levi.Fleischman/comments/commentRss/13.aspx</wfw:commentRss>
        <feedburner:origLink>http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/26/extjsrest.aspx</feedburner:origLink></item>
        <item>
            <title>ASP.NET AJAX WebMethods</title>
            <category>ASP.NET</category>
            <category>AJAX</category>
            <link>http://feedproxy.google.com/~r/LeviFleischman/~3/9uvf_keSJ0Q/webmethod.aspx</link>
            <description>A particularly overlooked and, for its simplicity, useful feature of ASP.NET AJAX is the WebMethod, which is a server-side method that can be called by client script.  The .NET compiler automatically adds client-side methods that take care of the AJAX request, JSON encoding and, to a degree, data type conversion. Sure, you COULD do this using a web service and XmlHttpRequest - but this is a quick-and-easy way of AJAX-enabling standard web form pages.&lt;img src="http://blogs.ignia.com/Levi.Fleischman/aggbug/12.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/LeviFleischman/~4/9uvf_keSJ0Q" height="1" width="1"/&gt;</description>
            <dc:creator>Levi Fleischman</dc:creator>
            <guid isPermaLink="false">http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/25/webmethod.aspx</guid>
            <pubDate>Sun, 26 Jul 2009 02:45:02 GMT</pubDate>
            <wfw:comment>http://blogs.ignia.com/Levi.Fleischman/comments/12.aspx</wfw:comment>
            <comments>http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/25/webmethod.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ignia.com/Levi.Fleischman/comments/commentRss/12.aspx</wfw:commentRss>
        <feedburner:origLink>http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/25/webmethod.aspx</feedburner:origLink></item>
        <item>
            <title>ASP.NET AJAX 1.0</title>
            <category>ASP.NET</category>
            <category>AJAX</category>
            <category>ExtJS</category>
            <link>http://feedproxy.google.com/~r/LeviFleischman/~3/bMcEIwhKWDE/microsoftajax.aspx</link>
            <description>Microsoft has a long history of misnamed and mis-marketed developer tools. My favorite example is .NET, a relatively simple concept complicated by an initial decision to attach the label to Microsoft's upcoming generation of servers (e.g., "Windows .NET Server 2003"). The latest blunder is ASP.NET AJAX, a useful suite of technologies only partially related to "AJAX" development.  Unfortunately, as a result of this some of the more useful aspects of the technology have been overlooked.&lt;img src="http://blogs.ignia.com/Levi.Fleischman/aggbug/11.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/LeviFleischman/~4/bMcEIwhKWDE" height="1" width="1"/&gt;</description>
            <dc:creator>Levi Fleischman</dc:creator>
            <guid isPermaLink="false">http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/25/microsoftajax.aspx</guid>
            <pubDate>Sun, 26 Jul 2009 01:19:03 GMT</pubDate>
            <wfw:comment>http://blogs.ignia.com/Levi.Fleischman/comments/11.aspx</wfw:comment>
            <comments>http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/25/microsoftajax.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ignia.com/Levi.Fleischman/comments/commentRss/11.aspx</wfw:commentRss>
        <feedburner:origLink>http://blogs.ignia.com/Levi.Fleischman/archive/2009/07/25/microsoftajax.aspx</feedburner:origLink></item>
    </channel>
</rss>

