3

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に入れて、リポジトリに渡す必要があるようです。

確かにもっと良い方法があるはずです!

4

1 に答える 1

6

「PersistSecurityInfo=True;」を追加してみてください コンテキスト接続文字列に。これは私のために働いた。

于 2011-03-16T11:35:54.893 に答える