.NET 4.5会员资格提供程序数据库

3
我正在使用标准的ASP.NET Webform模板及其成员资格提供程序,特别是仅使用外部ID服务(Google、Microsoft、Facebook、Twitter)。 所有这些都很好用,直到我决定将数据库从默认的localdb指向我的数据库。
在web.config中,我将、和中的connectionStringName属性从默认的DefaultConnection更改为我自己的连接字符串名称。然后,以下表会自动创建在我的数据库中: Users、Roles、Profiles和Memberships。但是,它继续使用localdb中的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表格?
谢谢。

我已将连接字符串“DefaultConnection”中的数据库更改为我的数据库,并且它可以正常工作。在Open Auth代码的某个部分中,连接字符串“DefaultConnection”是否被硬编码了? - Old Geezer
1个回答

3

从 Visual Studio 中查看 OpenAuth 类的元数据,可以看到有一个静态字符串属性叫做 ConnectionString

通过 Reflector 工具,可以看到 OpenAuth 的构造函数将 ConnectionString 属性初始化为 "DefaultConnection"。

因此,用户可以通过更新该属性来随时更改 OpenAuth 使用的连接字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接