参考会员等级

时间:2012-08-24 12:06:22

标签: c# asp.net class asp.net-membership

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

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

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

既然我已经这样做了,为了使用Membership函数,我可以在我的代码中引用它:

MyMembershipClass或仅Membership

修改

如果您只是Membership引用它,这是defaultProvider="MyMembershipClass"吗?

2 个答案:

答案 0 :(得分:1)

就像Membership一样。它将自动映射到您定义的成员资格类。这样可以在以后更改提供程序,而无需更改所有代码。

所以你不必写:

MyMembershipClass.GetUser 

但是

Membership.GetUser

顺便说一句,如果您定义自定义RoleProvider,情况也是如此,例如:

Roles.AddUserToRole(userName, roleName);  

修改

  

如果您仅在会员资格中提及它,是否应该这样做   defaultProvider = “MyMembershipClass”?

是的,那必须是继承自MembershipProvider的类的名称(或继承自SqlMembershipProvider的其他类)。

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

  

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

答案 1 :(得分:0)

只是会员资格。成员资格上的静态方法将调用提供者的方法。