EFCTP5を使用するアプリがあります。
この特定の状況では、いくつかの従来のADO.NETに劣化させる必要があります(EFがサポートしていないストアドプロシージャで複数の結果セットを読み取るため)。
そのため、次のように、オブジェクトの既存の接続文字列を使用しようとしています。EntityConnection
var ctx = (this as IObjectContextAdapter).ObjectContext;
var efCon = ((EntityConnection) (ctx.Connection)).StoreConnection;
var con = new SqlConnection(efCon.ConnectionString);
con.Open(); // exception thrown
デバッグすると、ConnectionString
にはパスワードが含まれておらず、データソース、ユーザー名、データベースなどのみが含まれていることがわかります。
これは、彼らがそれを削除した理由のセキュリティ上の問題ですか?EFはパスワードをどこかに隠し、ストアドプロシージャ自体を実行するときにのみ使用しますか?
EF接続文字列は、メタデータ情報を持っているため、従来のADO.NET接続文字列とは異なります。
したがって、接続文字列の必要な部分を取り除き、それをweb.configに入れて、リポジトリに渡す必要があるようです。
確かにもっと良い方法があるはずです!