使用mvc4设置现有成员资格

我有一个与webforms一起使用的现有SQL成员资格数据库,我正在尝试将其设置为使用mvc4但没有运气,当我尝试通过id获取用户时(我知道这个用户存在)我得到nullexception。并且web我打开web app配置我可以清楚地看到它没有成员或角色..等等。

以下是来自我的网站应用程序的配置的一部分:

                               .... 

这是为mvc:

                                                    

首先确保切换到Asp.Net Universal Providers(nuget包),然后确保连接到与旧应用程序相同的DB。 asp.net数据库的模式没有改变,应该可以正常使用MVC 4。

经过3天谷歌搜索,这是我的方式。 使用MVC4 RC,.net Framework 4.5,SQL Server Express与.NET 4创建的新SqlMemberDB会导致旧的SqlMemberDB缺少某些存储过程。

  1. 再添加一个设置到 ,如下所示,禁用“简单会员”:

      
  2. 根据需要添加数据库连接。 我正在使用SQL Server 2000,因此禁用用户实例。

      
  3. 从v4 .NET框架下的machine.ini复制设置配置。

                       
  4. 从帐户控制器更改登录()如下所示

      /// aspnetSQLMember Authentication if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } 
  5. 从AccountController更新Logoff模块,如下所示

     /// aspnetSQLMember Authentication FormsAuthentication.SignOut(); 

谢谢,

我一直有同样的问题 – 将MVC4应用程序指向一个“旧的”aspnet数据库。 无法在“默认”设置(System.Web.Providers.DefaultProfileProvider)下检索现有用户/密码 – >请注意这些密码已加密,并且本地web.config中存在相应的设置(在system.web下)

  

如果我添加一个具有“DefaultProfileProvider”的新用户,可以对用户进行协调和身份validation – 它只适用于添加了“旧”提供程序的现有用户。

我没有机会“切换”到旧的,但我怀疑它是有效的(感谢user1010609)@Israel – 这很奇怪它应该工作 – 但它没有;)

请记住,您必须在项目的引用中包含库: System.Web.Providers.dll