3

標準の ASP.NET Webform テンプレートとそのメンバーシップ プロバイダーを使用しています。具体的には、外部 ID サービス (Google、Microsoft、Facebook、Twitter) のみを使用しています。データベースをデフォルトの localdb から自分のデータベースに向けることに決めるまで、これらはすべてうまくいきました。

web.configconnectionStringNameで、<profile>、<membership>、および <roleManager> の属性をデフォルトDefaultConnectionから独自の接続文字列名に変更しました。その後、次のテーブルがデータベースに自動的に作成されました: UsersRolesProfilesおよびMemberships。しかし、使い続けてUsersOpenAuthAccountslocaldbUsersOpenAuthDataから!

誰が 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 しかありません。

要点: メンバーシップ プロバイダーが自分のデータベースで 2 つの OpenAuth テーブルを使用するようにするにはどうすればよいですか?

ありがとう。

4

1 に答える 1

3

VS の OpenAuth クラス メタデータを見ると、 という静的文字列プロパティがありますConnectionString

また、Reflector を使用すると、OpenAuth のコンストラクターがConnectionStringプロパティを "DefaultConnection" に初期化することがわかります。

したがって、ユーザーはこのプロパティを更新するだけで、OpenAuth が使用する接続文字列をいつでも変更できます。

于 2012-11-11T15:25:34.630 に答える