【问题标题】:MVC 4 RC - Aspnet_regsql.exeMVC 4 RC - Aspnet_regsql.exe
【发布时间】:2012-06-22 20:20:35
【问题描述】:

我正在尝试使用 MVC 4 RC 默认模板启用登录。 我这样做的方式与 MVC 3 中的 Aspnet_regsql.exe -> SQL 服务器相同。然后我将连接字符串指向 SQL 服务器。

当我尝试注册一个新用户时,我得到了这个:

Server Error in '/' Application.

Invalid column name 'ApplicationId'.
Invalid column name 'UserName'.
Invalid column name 'ApplicationId'.
Invalid column name 'UserId'.
Invalid column name 'UserName'.
Invalid column name 'IsAnonymous'.
Invalid column name 'LastActivityDate'.

AccountController 中的错误:

              Line 85: // Attempt to register the user
              Line 86: MembershipCreateStatus createStatus;
Error here -> Line 87: Membership.CreateUser(model.UserName, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: true, providerUserKey: null, status: out createStatus);
              Line 88:
              Line 89: if (createStatus == MembershipCreateStatus.Success)

我一直在尝试用谷歌搜索这个错误,但到目前为止还没有运气。 在 MVC 4 中我应该以其他方式执行此操作吗?

【问题讨论】:

  • 您找到解决方案了吗?如果我运行 SQL 分析器,DefaultMembershipProvider 生成的 SQL 语句使用与 aspnet_regsql 不同的表名(Applications 而不是 aspnet_ApplicationsUsers 而不是 aspnet_Users)。一种解决方案是重命名表以适合成员资格提供程序或为 MVC 编写自定义成员资格提供程序。

标签: asp.net-mvc-4


【解决方案1】:

我收到了同样的错误,因为我使用的是来自 aspnet_regsql.exe 版本 2.x 的成员资格表。我在版本 2.x 文件夹中运行了 aspnet_regsql.exe 可执行文件并卸载了这些表。然后使用新的通用提供程序,您不再需要使用上述可执行文件,表在您第一次连接时创建。

本文更详细地介绍了旧的 aspnet_Memembership 与 Universal Providers 之间的区别。

Stronger Password Hasing Net

文章要点:

首先,没有了 aspnet_regsql,您只需确保您的连接字符串已设置并且该帐户具有 DBO 权限(不用担心,它不必保持这种状态)然后运行应用程序并尝试执行任何应该导致成员资格提供程序访问数据库的操作(即登录 - 没有帐户并不重要)。

这就是它的全部。

【讨论】:

  • “首先,不再有 aspnet_regsql,您只需确保设置了连接字符串...”,一切正常:) 不再有 regsql 工具!非常感谢:)
  • 我遇到的问题是新 System.Web.Providers 框架没有等效的 aspnet_regsql.exe,我无法创建 db 架构,然后使用管理员用户和在允许公共用户注册之前的角色。我构建了 MvcInstaller(NuGet 和 github),它使用 aspnet_regsql.exe 为管理员安装会员系统。这不允许我为新系统更新我的组件。这很令人沮丧。
猜你喜欢
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 2012-06-18
  • 2012-06-24
  • 1970-01-01
相关资源
最近更新 更多