3

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

在 web.config 中,我将connectionStringName<profile>、<membership> 和 <roleManager> 中的属性从默认值DefaultConnection更改为我自己的连接字符串名称。然后在我的数据库中自动创建了以下表格:UsersRoles和. 但是,它继续使用并来自localdb!ProfilesMembershipsUsersOpenAuthAccountsUsersOpenAuthData

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

谢谢。

4

1 回答 1

3

查看 VS 的 OpenAuth 类元数据,有一个名为ConnectionString.

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

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

于 2012-11-11T15:25:34.630 回答