成员资格.Provider必须是ExtendedMembershipProvider的实例
本文关键字:ExtendedMembershipProvider 实例 Provider 成员 | 更新日期: 2023-09-27 18:05:24
我已经阅读了一些链接,试图帮助我解决这个问题。我通过Pluralsight跟随我的第一个MVC教程,我正在使用身份验证。使用MVC4 Internet应用程序模板。
在我的Seed
方法我有:
protected override void Seed(DepartmentDb context)
{
if (!Roles.RoleExists("Admin"))
Roles.CreateRole("Admin");
if (Membership.GetUser("Luke") == null)
{
Membership.CreateUser("Luke", "password");
Roles.AddUserToRole("Luke", "Admin");
}
}
将用户和角色添加到SQL
中,这一切看起来都很好,并且与教程相同。然后它指示用我的凭据登录。我试着登录得到了标题中显示的异常:
会员。提供者必须是ExtendedMembershipProvider的实例
我已经尝试重新安装所需的软件包,并尝试按照SO帖子安装它,并将SimpleMembership
添加到appsetings
中,这不起作用。
我也按照评论阅读了这个MSDN链接,我遵循了说明,但仍然无法解决它。
我还需要做什么才能使它工作?它快把我逼疯了。
谢谢,路加福音
。
这里的问题是您在初始化SimpleMembershipProvider之前调用Membership.CreateUser()
。这是通过AccountController上的一个属性初始化的(该属性通常在用户登录时加载,因为登录函数是AccountController的一部分)。
不幸的是,你的种子函数在访问AccountController之前运行,因此,提供者还没有初始化。
查看initializesimplemembershipatattributes .cs类,并找出在种子函数运行之前调用它的方法。