天天看点

关于membership的进一步理解

  前几天,开始接触membership,一肚子疑惑,于是就找了一些资料发了这篇blog: 关于membership实用性讨论 。

  但是,还是感觉不能理解membership。于是今天又查阅了大量资料,才对membership有了进一步的理解。

  早期版本的ASP.NET 2.0 框架附带了两个成员身份提供程序:

AccessMembershipProvider

以及

SqlMembershipProvider

。正式版本已经不再提供 AccessMembershipProvider,默认只有 SqlMembershipProvider。要想使用其他数据库或者使用自定义的用户信息,就必须自己编写 MembershipProvider ,然后在web.config文件里配置:

<configuration>
            <system.web>
            <membership defaultProvider="provider名" />
            </system.web>
            </configuration>      

使用 SqlMembershipProvider时,通过在web.config文件里进行配置改变其苛刻的要求(密码长度,复杂度等):

<membership>
            <providers>
            <clear/>
            <add name="AspNetSqlMembershipProvider"
            type="System.Web.Security.SqlMembershipProvider, System.Web,
            Version=2.0.0.0, Culture=neutral,
            PublicKeyToken=b03f5f7f11d50a3a"
            connectionStringName="LocalSqlServer"
            requiresQuestionAndAnswer="false" requiresUniqueEmail="true"
            passwordFormat="Hashed" minRequiredNonalphanumericCharacters="0"
            minRequiredPasswordLength="3" />
            </providers>
            </membership>       

这样配置的原理是web.config里的设置覆盖了machine.config的默认设置,简化了用户注册的复杂度。

这篇文章( 阅读)详细介绍了 SqlMembershipProvider。

  以上资料仅是介绍了 MembershipProvider的配置方法,那怎么实现自定义的 MembershipProvider呢?我找到了这样一篇文章( 阅读),介绍了怎样实现自定义一个基于Access的 MembershipProvider,并提供实例的源码下载 。

         并且微软也提供了 Sample Access Providers下载。