成员资格.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链接,我遵循了说明,但仍然无法解决它。

我还需要做什么才能使它工作?它快把我逼疯了。

谢谢,路加福音

成员资格.Provider必须是ExtendedMembershipProvider的实例

这里的问题是您在初始化SimpleMembershipProvider之前调用Membership.CreateUser()。这是通过AccountController上的一个属性初始化的(该属性通常在用户登录时加载,因为登录函数是AccountController的一部分)。

不幸的是,你的种子函数在访问AccountController之前运行,因此,提供者还没有初始化。

查看initializesimplemembershipatattributes .cs类,并找出在种子函数运行之前调用它的方法。

相关文章:
  • 没有找到相关文章