【问题标题】:.NET 4.5 Membership Provider Database.NET 4.5 成员资格提供程序数据库
【发布时间】:2012-10-30 16:05:00
【问题描述】:

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

在 web.config 中,我将 中的 connectionStringName 属性从默认的 DefaultConnection 更改为我自己的连接字符串名称。然后在我的数据库中自动创建了以下表格:UsersRolesProfilesMemberships。但是,它继续使用来自 localdb 的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 表?

谢谢。

【问题讨论】:

  • 我将连接字符串“DefaultConnection”上的数据库更改为我的数据库并且它可以工作。连接字符串“DefaultConnection”是否硬编码在 Open Auth 代码的某一部分?

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 2011-11-04
    相关资源
    最近更新 更多