我有一个自定义成员资格提供程序,已指定在 MVC3 项目的 web.config
文件中使用该提供程序。我假设它将用来代替内置的成员(member)资格提供程序,因为我像这样指定它的使用:
<system.web>
<membership defaultProvider="CustomMySQLMembershipProvider">
<providers>
<clear />
<add
connectionStringName="dbConn"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="25"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="/jp2012"
name="CustomMySQLMembershipProvider"
type="NameSpace.CustomMySqlMembershipProvider" />
</providers>
</membership>
</system.web>
我是否必须在代码中执行某些操作才能使其覆盖默认的成员资格提供程序?现在我可以像这样访问它:
CustomMySqlMembershipProvider membership =
(CustomMySqlMembershipProvider)Membership.Providers["CustomMySQLMembershipProvider"];
有没有一种方法可以使用 web.config
文件自动覆盖它,这样我就不必对我的实现名称进行硬编码?更像这样:
MembershipProvider membership = new MembershipProvider();
有什么想法吗?如果您需要更多信息,请告诉我。
最佳答案
您的成员(member)提供商是您的情况的默认提供商。除非您的提供程序中有其他功能,否则您不需要显式转换该提供程序。
例如,当您调用 Membership.GetUser()
时,它将调用您的成员资格证明者的 GetUser(...)
方法。
关于asp.net-mvc-3 - MVC 自定义成员(member)提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708413/