我只是使用自定义成员资格提供程序创建一个aspnet MVC 4基本应用程序。 我按照以下步骤操作:
1)使用aspnetregsql.exe在Sql Server 2008中创建成员资格表 所以我有自定义会员表,如:
aspnet_Users
aspnet_Membership
aspnet_Roles ...
2)添加了一个引用该数据库的连接字符串。
3)在成员资格部分的web.config文件中添加了一个提供程序:
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
connectionStringName="primecontrol" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false"
requiresUniqueEmail="false" maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10" applicationName="/" />
因此,当我运行ASP.NET配置工具并去测试我的提供者连接时,它说我不创建任何提供者。
但是,如果我创建一个新用户,例如,它会在我的数据库中创建另一个没有'aspnet'前缀的表。 怎么回事?
答案 0 :(得分:2)
我只是用自定义创建一个aspnet MVC 4基本应用程序 会员提供者。
在web.config中,我没有看到声明自定义成员资格提供程序。
应该像 -
<membership defaultProvider="CustomProvider">
<providers>
<clear/>
<add name="CustomProvider"
type="YourNamespace.YourMembershipProvider, YourNamespace"
... />
</providers>
</membership>
如果您使用的是ASP.Net MVC 4,则需要使用新的 ASP.NET Universal Providers ,它基本上是您使用的旧会员提供程序的较新版本
ASP.NET通用提供商使用实体框架代码优先,与商店流程相比,它更加清晰。
如果您想要最新的会员资格,可能需要尝试ASP.NET Identity。注意:身份不与旧会员提供商向后兼容。