<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>All About Interop : ASP.NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/tags/ASP.NET/default.aspx</link><description>Tags: ASP.NET</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Enable .NET 3.5 goodies in IIS vdir</title><link>http://blogs.msdn.com/dotnetinterop/archive/2008/12/05/enable-net-3-5-goodies-in-asp-net-vdir.aspx</link><pubDate>Fri, 05 Dec 2008 20:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9156090</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/9156090.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=9156090</wfw:commentRss><description>&lt;P&gt;Some of you may be oddballs like me:&amp;nbsp; you like .NET, you program in .NET, but you don't always use Visual Studio.&amp;nbsp;&amp;nbsp; You hand-code everything for some applications.&amp;nbsp; You often open up a text editor and just start writing a source module, with no wizards, no project templates, etc.&amp;nbsp; You hand-code your MSbuild files.&amp;nbsp; You hand-code your web.config files. &lt;/P&gt;
&lt;P&gt;Oddballs like us cannot rely on the code-generation that comes with Visual Studio.&amp;nbsp; So when we write a new ASP.NET application, and we want to use the .NET 3.5 goodies in that app - things like var types, and LINQ - we need to explicitly specify that we want .NET 3.5 compilation.&amp;nbsp; Same is true if you are writing a WCF service and want to use REST or any of the var types or LINQ. &lt;/P&gt;
&lt;P&gt;I've done this twice now and had to search for the way to do it both times.&amp;nbsp; I'm putting here as a "note to self" and also as a reference for anyone else.&amp;nbsp; These are the custom magic incantations for web.config, if you want to enable .NET 3.5 in your ASP.NET app, or in your WCF Service - eg, the cool REST stuff from .NET 3.5.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 2pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 2pt; FONT-SIZE: 9pt; BACKGROUND: white; PADDING-BOTTOM: 2pt; BORDER-LEFT: windowtext 1pt solid; COLOR: black; LINE-HEIGHT: 98%; PADDING-TOP: 2pt; BORDER-BOTTOM: windowtext 1pt solid; FONT-FAMILY: Consolas, Courier New"&gt;&lt;PRE&gt;&amp;lt;&lt;SPAN style="COLOR: #a020f0"&gt;?xml&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;version&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"1.0"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;encoding&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"utf-8"&lt;/SPAN&gt;?&amp;gt;
&amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;configuration&lt;/SPAN&gt;&amp;gt;

  &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;system.web&lt;/SPAN&gt;&amp;gt;
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;compilation&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;debug&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"false"&lt;/SPAN&gt;&amp;gt;  
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;assemblies&lt;/SPAN&gt;&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;assembly&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"&lt;/SPAN&gt;/&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;assembly&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&lt;/SPAN&gt;/&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;assembly&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"&lt;/SPAN&gt;/&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;assembly&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"&lt;/SPAN&gt;/&amp;gt;  
      &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;assemblies&lt;/SPAN&gt;&amp;gt;  
    &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;compilation&lt;/SPAN&gt;&amp;gt;  
  &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;system.web&lt;/SPAN&gt;&amp;gt;


  &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;system.codedom&lt;/SPAN&gt;&amp;gt;  
    &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;compilers&lt;/SPAN&gt;&amp;gt;  
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;compiler&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;language&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"c#;cs;csharp"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;extension&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;".cs"&lt;/SPAN&gt;   
                &lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"&lt;/SPAN&gt;   
                &lt;SPAN style="COLOR: #b8860b"&gt;warningLevel&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"4"&lt;/SPAN&gt;&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;providerOption&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"CompilerVersion"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;value&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"v3.5"&lt;/SPAN&gt;/&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;providerOption&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"WarnAsError"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;value&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"false"&lt;/SPAN&gt;/&amp;gt;  
      &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;compiler&lt;/SPAN&gt;&amp;gt;  
      &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;compiler&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;language&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"vb;vbs;visualbasic;vbscript"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;extension&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;".vb"&lt;/SPAN&gt;   
                &lt;SPAN style="COLOR: #b8860b"&gt;type&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"&lt;/SPAN&gt;   
                &lt;SPAN style="COLOR: #b8860b"&gt;warningLevel&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"4"&lt;/SPAN&gt;&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;providerOption&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"CompilerVersion"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;value&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"v3.5"&lt;/SPAN&gt;/&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;providerOption&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"OptionInfer"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;value&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"true"&lt;/SPAN&gt;/&amp;gt;  
        &amp;lt;&lt;SPAN style="COLOR: #0000ff"&gt;providerOption&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;name&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"WarnAsError"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #b8860b"&gt;value&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #bc8f8f"&gt;"false"&lt;/SPAN&gt;/&amp;gt;  
      &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;compiler&lt;/SPAN&gt;&amp;gt;  
    &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;compilers&lt;/SPAN&gt;&amp;gt;  
  &amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;system.codedom&lt;/SPAN&gt;&amp;gt; 

&amp;lt;/&lt;SPAN style="COLOR: #0000ff"&gt;configuration&lt;/SPAN&gt;&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9156090" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Not+Really+Interop/default.aspx">Not Really Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/REST/default.aspx">REST</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/emacs/default.aspx">emacs</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>ASP.NET Membership Providers</title><link>http://blogs.msdn.com/dotnetinterop/archive/2006/04/05/asp-net-membership-providers.aspx</link><pubDate>Wed, 05 Apr 2006 18:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:568936</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/568936.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=568936</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/yh26yfzy(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/yh26yfzy(VS.80).aspx"&gt;ASP.NET 2.0 includes membership services&lt;/A&gt;, which is a built-in mechanism for validating and storing user credentials, as well as storing and managing user profile information.&amp;nbsp; ASP.NET Membership uses a service provider model to allow "any backing store" to act as the membership data store.&amp;nbsp; Built-in to ASP.NET 2.0, Microsoft ships a &lt;A href="http://msdn2.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider(VS.80).aspx"&gt;SQL Server provider&lt;/A&gt;, as well as an &lt;A href="http://msdn2.microsoft.com/en-us/library/system.web.security.activedirectorymembershipprovider(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.web.security.activedirectorymembershipprovider(VS.80).aspx"&gt;ActiveDirectory (or ADAM) provider&lt;/A&gt;. What this means is, out of the box, you can manage members and logins of an ASP.NET web site using those backing stores.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;What if you have something different?&amp;nbsp; The service provider model enables other third-party implementations.&amp;nbsp; Microsoft hoped this would encourage people to just go build what they want, and in fact, that has happened.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Here are some resources on third party ASP.NET membership providers:&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ASPNETProvMod_Prt1.asp" mce_href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ASPNETProvMod_Prt1.asp"&gt;XML provider&lt;/A&gt; - article and source on MSDN.&amp;nbsp; Very lightweight, read-only. &lt;/FONT&gt;&lt;/LI&gt;&lt;FONT face=Tahoma size=2&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://www.devx.com/asp/Article/29256" mce_href="http://www.devx.com/asp/Article/29256"&gt;Writing a custom provider&lt;/A&gt; - article on devx, employs MS Access&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://support.microsoft.com/kb/910440" mce_href="http://support.microsoft.com/kb/910440"&gt;Writing a custom provider&lt;/A&gt; - KB Article from microsoft.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/www.codeproject.com/aspnet/MySQLMembershipProvider.asp" mce_href="www.codeproject.com/aspnet/MySQLMembershipProvider.asp"&gt;MySQL Provider&lt;/A&gt;&amp;nbsp;- article and source code on codeproject.com&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp" mce_href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp"&gt;PetShop4&lt;/A&gt; - including source for a partial Oracle 10g membership provider&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://archives.postgresql.org/pgsql-announce/2006-02/msg00017.php" mce_href="http://archives.postgresql.org/pgsql-announce/2006-02/msg00017.php"&gt;PostgreSQL provider&lt;/A&gt; - from CoreLab (trial version available )&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://db4omembership.sourceforge.net/" mce_href="http://db4omembership.sourceforge.net/"&gt;db4o provider&lt;/A&gt;&amp;nbsp;- sourceforge project&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://www.eggheadcafe.com/articles/20051119.asp" mce_href="http://www.eggheadcafe.com/articles/20051119.asp"&gt;SQLite Provider&lt;/A&gt;&amp;nbsp;- article and source code on eggheadcafe&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Tahoma color=#000000 size=2&gt;With all those resources, it's clear the extensibility model works.&amp;nbsp; Well, you need a custom provider, go get it. You want to write your own?&amp;nbsp; Get to it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;You can also &lt;A class="" href="http://search.msn.com/results.aspx?q=membership+++asp.net+custom+provider+&amp;amp;form=QBRE" mce_href="http://search.msn.com/results.aspx?q=membership+++asp.net+custom+provider+&amp;amp;form=QBRE"&gt;look for more providers&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=568936" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Providers/default.aspx">Providers</category></item></channel></rss>