代码之家  ›  专栏  ›  技术社区  ›  ProfK

SqlRoleProvider无法连接到数据库

  •  0
  • ProfK  · 技术社区  · 15 年前

      <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
        <providers>
          <remove name="AspNetSqlRoleProvider"/>
          <add name="AspNetSqlRoleProvider"
               type="System.Web.Security.SqlRoleProvider"
               connectionStringName="PoyntingInstallationConnectionString"
               applicationName="/" />
        </providers>
      </roleManager>
    

    DB有所有的角色表等。

    1 回复  |  直到 15 年前
        1
  •  1
  •   GalacticCowboy    15 年前

    确保 PoyntingInstallationConnectionString 在web.config中,配置正确,并指向包含表的数据库。

    角色将是aspnet\u roles表中的条目,而不是数据库角色。并且没有默认的角色,所以当您第一次运行脚本时,表应该是空的。

    编辑2 :aspnet\u regsql工具很容易运行-它位于.NET Framework v2.0文件夹中(默认位置(C:\Windows\Microsoft.NET\Framework\v2.0.50727)

    有许多参数可以从命令行运行,或者如果您不使用参数运行它,它将打开一个向导,引导您完成它。请注意,使用该向导,您可以获得对所有成员资格提供程序功能(配置文件、个性化设置、web事件…)的支持,即使您不打算使用它们。

    我建议您运行它,然后将结果与现有数据库进行比较。是不是有人运行了这个工具,然后把表复制到另一个数据库,却没有意识到还需要其他一些东西?我只是试着从命令行和向导运行这个工具,它生成了所有的角色、过程等。

    正确运行时,应该有一堆表(至少6个)、存储过程(几十个左右-我的有35个)和DB角色(至少6个),名称以 aspnet_ vw_aspnet_ . 如果你遗漏了其中的任何一部分,提供者将无法工作。

    推荐文章