在C#Code第一个成员资格提供程序包中,找不到MembershipProvider错误。参考遗失?

时间:2013-06-13 12:13:51

标签: asp.net-mvc asp.net-mvc-4 membership-provider

我在该项目中创建了名为Sorama.CustomAuthentication的项目,我通过c# CodeFirst Membership Provider安装了一个名为nuGet package manager的软件包。 您可以在此处查看已添加到此项目的引用 enter image description here

但不允许CodeFirstMembershipProvider类继承自MembershipProvider。 错误说MembershipProvider could not be found. 我错过了什么?

2 个答案:

答案 0 :(得分:0)

确保将引用添加到System.Web.ApplicationServices.dll

答案 1 :(得分:0)

看起来您将此添加到新的类库项目(即不是MVC项目本身)?如果是这样,那么它们假定存在的大多数引用(将在模板MVC项目中)都会从类库引用中遗漏。

那个特殊的NuGet(currently at v1.0.0)坦率地说并不是一个很好的方案。它似乎缺少像EntityFramework和一些.NET框架引用之类的依赖项,所以一旦你超越了这个,你可能还有其他人也可以添加,这可能是:

  • 来自Nuget:
    • EntityFramework。dll,v5.0.0.0(Install-Package EntityFramework -Version 5.0.0
  • 从GAC(即使用项目的“添加引用”上下文菜单,以及“Assemblies \ Framework”列表中的对话框搜索这些名称)
    • System.Web.dll,v4.0.0.0
    • System.Web.ApplicationServices.dll,v4.0.0.0
    • System.Configuration.dll,v4.0.0.0

将来你可以通过让Visual Studio构建项目,并查看构建错误消息来解决这个问题,如下所示:

  

类型名称' MembershipProvider'无法找到。此类型已转发到程序集' System.Web.ApplicationServices,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 '。考虑添加对该程序集的引用。

我以粗体突出显示的位告诉您,它认为您需要的最佳匹配是System.Web.ApplicationServices,尤其是v 4.0.0.0,并且还为您提供了公钥令牌。