EntityConnectionオブジェクトにログインパスワードが含まれていないのはなぜですか?
質問
EF CTP5を使用するアプリがあります。
この特定の状況では、いくつかの古典的な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に入れてリポジトリに渡す必要があるようです。
確かにもっと良い方法がなければなりません!
解決
「Stive Security Info = true;」を追加してみてください。コンテキスト接続文字列へ。これは私のために働いた。
所属していません StackOverflow