.NET 4.5成员提供程序数据库

时间:2012-11-10 15:19:22

标签: asp.net-membership asp.net-authentication

我正在使用标准的ASP.NET Webform模板及其成员资格提供程序。具体来说,我只使用外部ID服务(谷歌,微软,Facebook,Twitter)。所有这些都运行正常,直到我决定将数据库从默认的localdb指向我自己的。

在web.config中,我更改了<个人资料>中的connectionStringName属性,< membership>和< roleManager>从默认的DefaultConnection到我自己的连接字符串名称。然后在我的数据库中自动创建以下表格:UsersRolesProfilesMemberships。但是,它继续使用localdb!{/ p>中的UsersOpenAuthAccountsUsersOpenAuthData

要找出谁在使用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表?

感谢。

1 个答案:

答案 0 :(得分:3)

查看VS中的OpenAuth类元数据,有一个名为ConnectionString的静态字符串属性。

使用Reflector,可以看到OpenAuth的构造函数将ConnectionString属性初始化为“DefaultConnection”。

因此,用户只需更新此属性即可随时更改OpenAuth使用的连接字符串。