我有以下使用标准SqlRoleProvider的角色配置,但当我尝试在wweb site Admin工具中打开安全页面时,我得到一个错误:
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
<providers>
<remove name="AspNetSqlRoleProvider"/>
<add name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="PoyntingInstallationConnectionString"
applicationName="/" />
</providers>
</roleManager>DB有所有的角色表等。
发布于 2010-07-06 21:27:29
确保PoyntingInstallationConnectionString位于您的web.config中,配置正确,并指向包含您的表的数据库。
角色将是aspnet_Roles表中的条目,而不是数据库角色。并且没有默认角色,因此在第一次运行脚本时,该表应该为空。
编辑:您能提供有关如何创建auth DB的更多详细信息吗?也就是说,您是直接运行aspnet_regsql工具,还是单独生成和运行脚本?
编辑2: aspnet_regsql工具非常容易运行-它位于.NET Frameworkv2.0文件夹中。(默认位置C:\Windows\Microsoft.NET\Framework\v2.0.50727)
有一堆参数可以用来从命令行运行,或者如果你不带参数运行它,它将打开一个向导,引导你完成它。请注意,使用向导,您将获得对所有成员资格提供程序功能(配置文件、个性化、web事件...)的支持。即使你不打算使用它们。
我建议您运行它,然后将结果与现有数据库进行比较。是否有人运行该工具,然后将表复制到另一个数据库,而没有意识到还需要一堆其他东西?我刚刚尝试从命令行和向导运行该工具,它生成了所有的角色、过程等。
正确运行时,应该有一堆表(至少6个)、存储过程(几十个左右--我的是35个)和DB角色(至少6个),它们的名称以aspnet_开头,还有一些视图(至少5个),名称以vw_aspnet_开头。如果你遗漏了其中的任何一部分,提供者将无法工作。
我通常从命令行运行它,所以我只获得成员和角色的东西。这将减少相当多的噪音,但也是为什么我上面的数字有点模糊。:)
https://stackoverflow.com/questions/3186403
复制相似问题