MVC 4.0 プロジェクトでロールを機能させようとしています。エンティティ フレームワークの接続文字列を使用して、データベースのクエリと更新を行うことができます。
<add name="DataContext"
connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;
provider=System.Data.SqlClient;
provider connection string='data source=.\SQLEXPRESS;
initial catalog=Phase 2;
integrated security=True;
multipleactiveresultsets=True;
application name=EntityFramework'"
providerName="System.Data.EntityClient" />
これは素晴らしく機能します。問題は、ロール マネージャーをセットアップしようとすると、無効な接続文字列があると表示されることです。
<roleManager enabled="true">
<providers>
<clear />
<add name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="DataContext"
applicationName="/" />
</providers>
</roleManager>
これによりエラーがスローされ、接続文字列が間違っていることがわかります。どうやら調査した後、プロバイダーには別の接続文字列を使用する必要があります。ただし、2 つの接続文字列を同じコンテキストに向ける方法がわかりません。
これが現在、コンテキストに名前を付けている方法です。
public DataContext()
: base("name=DataContext")
{
}
名前を動的に設定する方法はありますか、それとも別の方法を探す必要がありますか。