0

我正在使用继承的代码SqlMembershipProvider,命名MyMembershipClass以便我可以使用这些函数。

我已经创建了我的继承类并在Web.config文件中指定它,如下所示:

<membership defaultProvider="MyMembershipClass">
  <providers>
    <clear/>
    <add name="MyMembershipClass" type="MyMembershipClass" applicationName="/"/> 
  </providers>
</membership>

既然我已经这样做了,为了使用 Membership 函数,我是否在我的代码中将其称为:

MyMembershipClass还是只是Membership

编辑:

如果您在刚才提到它,Membership这是由于defaultProvider="MyMembershipClass"

4

2 回答 2

1

就像Membership. 它将自动映射到您定义的会员等级。这样就可以在以后更改提供程序而无需更改所有代码。

所以你不必写:

MyMembershipClass.GetUser 

Membership.GetUser

顺便说一句,如果你定义一个 custom 也是如此RoleProvider,例如:

Roles.AddUserToRole(userName, roleName);  

编辑

如果您仅在 Membership 中引用它,这是由于 defaultProvider="MyMembershipClass" 造成的吗?

是的,那必须是继承自的类的名称MembershipProvider(或从它继承的另一个类,例如SqlMembershipProvider)。

根据您的第二条评论,即使它不存在,您也可以定义您想要的东西,如果我在 web.config 中将提供者命名为“Bob”,我会得到一个例外:

异常信息:异常类型:ConfigurationErrorsException 异常消息:找不到默认成员资格提供程序。

于 2012-08-24T12:09:13.683 回答
0

只是会员。Membership 上的静态方法将调用您的提供者上的方法。

于 2012-08-24T12:10:07.817 回答