Roles.CreateRole() creates a new database inside App_Data
如果将我的默认成员资格提供程序设置为使用与实际SQL Server的连接,则
我有这样的连接字符串:
1 2 3 4 | <connectionStrings> <add name="MembershipDbConnection" connectionString="Server=.;Initial Catalog=aspnetdb;User Id=*;Password=*" /> </connectionStrings> |
和这样定义的成员资格提供程序:
1 2 3 4 5 6 7 8 9 10 | <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15"> <providers> <clear /> <add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MembershipDbConnection" <-- this is the connection /> </providers> </membership> |
奇怪的是,我的SQL Server中有一个
如果要使用角色,则需要配置"角色管理器"部分。
可能是您正在拾取继承的RoleManager部分,该部分使用了不同的连接字符串。
我认为您没有在Web.Config的" membership "和" roleManager "标记中提供" applicationName "属性。这是一个示例:-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <membership> <providers> <clear /> </providers> </membership> <roleManager enabled="true"> <providers> <clear /> </providers> </roleManager> |
Mansoor Gee \\'s的答案提供了一个很好的模板。
这是指向文档的链接,这些文档说明了如何在web.config中实现什么以及如何实现以启用RoleManager:
http://msdn.microsoft.com/zh-cn/library/vstudio/ms164660(v = vs.100).aspx
希望这会为将来的读者添加一些背景信息,因为我初次遇到此答案时需要一些信息。