我正在使用标准的ASP.NET Webform模板及其成员资格提供程序。具体来说,我只使用外部ID服务(谷歌,微软,Facebook,Twitter)。所有这些都运行正常,直到我决定将数据库从默认的localdb指向我自己的。
在web.config中,我更改了<个人资料>中的connectionStringName
属性,< membership>和< roleManager>从默认的DefaultConnection
到我自己的连接字符串名称。然后在我的数据库中自动创建以下表格:Users
,Roles
,Profiles
和Memberships
。但是,它继续使用localdb!{/ p>中的UsersOpenAuthAccounts
和UsersOpenAuthData
要找出谁在使用localdb,我删除了连接字符串“DefaultConnection”。访问权来自OpenAuth.Login
。错误消息为"Cannot attach the file d:\....\visual studio 2012\Projects\...\App_Data\DefaultConnection.mdf as database 'DefaultConnection'."
我很困惑为什么会这样。 App_Data中没有DefaultConnection.mdf文件。只有一个aspnet-XXXX-yyyyMMddhhmmss.mdf。
底线是:如何让会员提供者在我自己的数据库中使用两个OpenAuth表?
感谢。
答案 0 :(得分:3)
查看VS中的OpenAuth类元数据,有一个名为ConnectionString
的静态字符串属性。
使用Reflector,可以看到OpenAuth的构造函数将ConnectionString
属性初始化为“DefaultConnection”。
因此,用户只需更新此属性即可随时更改OpenAuth使用的连接字符串。