【问题标题】:Why do I only have a subset of asp.net membership tables?为什么我只有一部分 asp.net 成员表?
【发布时间】:2012-08-30 18:46:52
【问题描述】:

总结: 我正在尝试使用 asp.net 成员资格、角色和配置文件,但无法让我的代码使用由 aspnet_regsql.exe 生成的表。

我尝试了什么:

  1. 在我的数据库上运行 aspnet_regsql.exe。这很奏效,所有表都已创建。
  2. 致电Membership.CreateUser("tester7","tester7","tester7@hi.com");

这随后创建了以下表格并将用户存储在 dbo.Memberships 而不是 dbo.aspnet_Memberships 中。

  • dbo.Applications
  • dbo.Memberships
  • dbo.Profiles
  • dbo.Roles
  • dbo.Users
  • dbo.UsersInRoles

它完全忽略了由 aspnet_regsql.exe 创建的表。

为什么会发生这种情况,我可以做些什么来定位到 aspnet_* 表?

编辑以包含 Web.config 会员注册

<membership defaultProvider="ProjectMembershipProvider">
  <providers>
    <add name="ProjectMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider,..." connectionStringName="ProjectSql" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="Project" />
  </providers>
</membership>

【问题讨论】:

  • 您的会员注册是什么样的 (web.config)?
  • @Forty-2:我在上面进行了编辑以包括我的会员注册
  • 看起来您可能有一个以前实施的自定义会员提供程序,它在注册期间突然介入并“窃取”您的测试用户。
  • 看起来就是这样。 Candie 在下面的回答给出了我的具体问题。

标签: c# asp.net .net sql membership-provider


【解决方案1】:

您必须在配置文件中添加注册部分

System.Web.Providers.DefaultMembershipProvider 位于 Sql Compact 和 Azur 应用程序上

您有成员部分和角色经理部分

<membership>

  <providers>

    <add

      name="AspNetSqlMembershipProvider"

      type="System.Web.Security.SqlMembershipProvider, ..."

      connectionStringName="LocalSqlServer"

      enablePasswordRetrieval="false"

      enablePasswordReset="true"

      requiresQuestionAndAnswer="true"

      applicationName="/"

      requiresUniqueEmail="false"

      passwordFormat="Hashed"

      maxInvalidPasswordAttempts="5"

      minRequiredPasswordLength="7"

      minRequiredNonalphanumericCharacters="1"

      passwordAttemptWindow="10"

      passwordStrengthRegularExpression=""

    />

  </providers>

</membership>

【讨论】:

  • 发生这一切仅仅是因为我使用了 System.Web.Providers.DefaultMembershipProvider 而不是 System.Web.Security.SqlMembershipProvider?
  • @Kiwi 是的,这就是你的问题的原因
  • System.Web.Providers.DefaultMembershipProvider 与 Sql Compact 和 Azur 应用程序一起使用
  • 谢谢。我假设我还需要分别在我的配置文件和 roleManager 配置部分中指定 System.Web.Security.SqlRoleProvider 和 System.Web.Security.SqlProfileProvider?
  • 我很乐意为您提供帮助,是的,您必须指定两个,用于管理用户的成员资格和用于管理用户角色的角色管理器
猜你喜欢
  • 2021-12-19
  • 1970-01-01
  • 2019-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多