命名空间: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