自定义 MembershipProvider 的杂谈。

自定义 MembershipProvider 的杂谈。命名空间:System.Web.Security;Membership是VSDotNET2005中内置的一个静态类。它用于对成员资格验证和操作。它本身不提供对数据直接操作的方法,而是由它的Provider来完成。//Membership类//(取自.NetFrameWork2.0内部代码)privatestaticMembershipProviders_…

命名空间:System.Web.Security;

Membership 是 VS DotNET 2005 中内置的一个静态类。它用于对成员资格验证和操作。
它本身不提供对数据直接操作的方法,而是由它的 Provider 来完成。

// Membership 类
// (取自 .Net FrameWork 2.0 内部代码)
private static MembershipProvider s_Provider;

从这里可以看到 Membership 定义了一个局部静态对象 s_Provider,它是 MembershipProvider 类型。

若要实现成员资格提供程序,就必需创建一个继承 MembershipProvider 抽象类的类。
MembershipProvider 抽象类实现的必需的属性和方法,并提供了每个属性和方法的说明。

// 这是 machine.config 配置文件中一段信息

<membership>
  <providers>
    <add name=”AspNetSqlMembershipProvider”
      type=”System.Web.Security.SqlMembershipProvider,
            System.Web,
            Version=2.0.0.0,
            Culture=neutral,
            PublicKeyToken=b03f5f7f11d50a3a”
      connectionStringName=”LocalSqlServer”
      enablePasswordRetrieval=”false”
      enablePasswordReset=”true”
      requiresQuestionAndAnswer=”true”
      applicationName=”/”
      requiresUniqueEmail=”false”
      passwordFormat=”Hashed”
      maxInvalidPasswordAttempts=”5″
      minRequiredPasswordLength=”7″
      minRequiredNonalphanumericCharacters=”1″
      passwordAttemptWindow=”10″
      passwordStrengthRegularExpression=”” />
  </providers>
</membership>

它指示了 SqlMembershipProvider 类是作为 Membership 中 s_provider 的对象来调用。
因为 Membership 在 Initialize() 是时候会读取此配置信息,并将它实例化。

// Initialize() 方法中的一句代码
// (取自 .Net FrameWork 2.0 内部代码)
Membership.s_Provider = Membership.s_Providers[section1.DefaultProvider];

s_providers 是所有配置文件中的 <providers> 节内部的所有实例。
section1.DefaultProvider 是 <membership> 的 defaultProvider 属性值,
若示未定义就使用内部默认值 AspNetSqlMembershipProvider ,它由特性定义。

// MembershipSection 类中的 DefaultProvider 定义
// (取自 .Net FrameWork 2.0 内部代码)
[ConfigurationProperty(“defaultProvider”,
 DefaultValue=”AspNetSqlMembershipProvider”),
 StringValidator(MinLength=1)]
public string DefaultProvider

至此,会不会明白一点了呢?

// SqlMembershipProvider 定义
// (取自 .Net FrameWork 2.0 内部代码)
public class SqlMembershipProvider : MembershipProvider

从这里可以看到 SqlMembershipProvider 是继承 MembershipProvider 类的.

当如果在我们自己系统中的 Web.Config 中定义了如下节:

<membership defaultProvider=”MyProvider” userIsOnlineTimeWindow=”15″>
  <providers>
    <add
      name=”MyProvider”
      type=”Eos.Web.Security.MembershipEosProvider”
      connectionStringName=”LocalSqlServer”
      enablePasswordRetrieval=”true”
      enablePasswordReset=”true”
      requiresQuestionAndAnswer=”true”
      writeExceptionsToEventLog=”true” />
  </providers>
</membership>

// SqlMembershipProvider 定义
// (取自 .Net FrameWork 2.0 内部代码)
public sealed class MembershipEosProvider : MembershipProvider

注意这里定义了 defaultProvider=”MyProvider” 是表示 Membership 默认 MyProvider 为 s_Provider 对象。
而 MyProvider 是 Eos.Web.Security.MembershipEosProvider 类。它也继承 MembershipProvider 类。

转载于:https://www.cnblogs.com/eos/archive/2006/07/26/460302.html

今天的文章自定义 MembershipProvider 的杂谈。分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12375.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注