aspnetdb 没有填充角色?

Posted

技术标签:

【中文标题】aspnetdb 没有填充角色?【英文标题】:aspnetdb is not getting populated with roles? 【发布时间】:2015-04-30 19:37:23 【问题描述】:

我在一个 sqlserver 实例上维护了 aspnetdb.mdf,我在 ASP.net 网站应用程序中使用该实例来获取角色和成员资格。 问题是,当我使用 ASP.net 网站配置工具添加角色时,这些角色没有填充到我的 aspnet_Roles 表 in aspnetdb。

另一方面,用户和应用程序设置很好地分别插入到表 aspnet_Users 和 aspnet_Applications 表中? 我知道我的 web.config 文件有问题但不知道是什么?

web.config

<configuration>
  <appSettings>
      <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
    </appSettings>

  <connectionStrings>
    <add name="SqlSequrityConnectionString"
         connectionString="Data Source=NASEER\SQLEXPRESS;Initial Catalog=aspnetdb;Integrated Security=True"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
    <authorization>
      <allow users="56013" />
    </authorization>

    <authentication mode="Forms" />
    <roleManager enabled="true" />
    <compilation debug="true" targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />

    <membership defaultProvider="SecurityTutorialsSqlMembershipProvider">
      <providers>
        <!-- Add a customized SqlMembershipProvider -->
        <clear/>
        <add name="SecurityTutorialsSqlMembershipProvider"
        type="System.Web.Security.SqlMembershipProvider"
        connectionStringName="SqlSequrityConnectionString"
        enablePasswordRetrieval="false"
        enablePasswordReset="true"
        requiresQuestionAndAnswer="true"
        applicationName="SecurityTutorials"
        requiresUniqueEmail="true"
        passwordFormat="Hashed"
        maxInvalidPasswordAttempts="5"
        minRequiredPasswordLength="7"
        minRequiredNonalphanumericCharacters="1"
        passwordAttemptWindow="10"
        passwordStrengthRegularExpression=""/>
      </providers>
    </membership>
  </system.web>

</configuration>

【问题讨论】:

从这里看起来不错。你的 C# 代码是什么样的? 现在我正在使用内置的 ASP.net 网站管理工具来添加角色。只有角色不会被插入,否则用户和应用程序会很好地插入到各自的表中。 【参考方案1】:

通过添加以下代码,我得到了它的工作......!

<roleManager enabled="true" defaultProvider="SqlRoleManager">
      <providers>
        <add name="SqlRoleManager"
             type="System.Web.Security.SqlRoleProvider"
             connectionStringName="SqlSequrityConnectionString"
             applicationName="MyApplication" />
      </providers>
    </roleManager>

【讨论】:

以上是关于aspnetdb 没有填充角色?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C# 中的 ASPNETDB.NET 表中获取用户 ID?

如何添加ASPNETDB.MDF数据库生成水晶报表

ASPNETDB.MDF 正在我的 MVC 项目中创建

无法打开登录请求的数据库“ASPNETDB”。登录失败。用户 'Philip-Desktop\Philip' 登录失败

使用 Identity Impersonate 时,我无法访问本地 ASPNETDB.MDF 数据库

使用自定义数据库而不是 ASPNETDB 的 ASP.NET MVC 身份验证?