あなたが解読するために、コードで接続文字列プロパティを設定する必要があり、SharpArchは、あなたの設定にプロパティを追加することができます以下の過負荷提供:どこ復号化方法DecryptConnectionString(
NHibernateSession.Init(
sessionStorage,
new[] { Server.MapPath("~/bin/Suteki.TardisBank.Infrastructure.dll") },
new AutoPersistenceModelGenerator().Generate(),
Server.MapPath("~/NHibernate.config"),
// You can get all the values from your config and use here,
// if you dont want a config file at all, or just decrypt the
// connection string and provide that value dictionary:
new System.Collections.Generic.Dictionary<string, string>
{
{
NHibernate.Cfg.Environment.ConnectionString, DecryptConnectionString()
}
}, null);
を)どこから接続文字列を取得しますあなたは、app.configまたはハードコードされた文字列から暗号化された設定セクションであることが好きです。コービンとして
は、あなたがこれを配布しようとしているならば、私は直接DBに接続していないになり、これは、接続文字列を把握する平均ジョーのために、それはより複雑になりますが、それを行うことができる、と述べました。
1つの実行ファイルにDLLが含まれているようにするには、ILMergeを参照してください。
セキュリティ上の理由から非表示にしたいですか?もしそうなら、それはセキュリティの欠陥です。データベースに直接アクセスできるユーザーを信頼しない場合は、データベースに直接アクセスしないでください。誰かが細部をつかんで接続しないようにしたいのであれば、リンクの詳細を難読化するのではなく、APIを作成するのが理想的です。 – Corbin
プログラムは、いくつかの番号のクランチを行い、データベースにアクセスする必要があります。プログラムは異なるユーザーのマシンで実行されます。彼らは実際にデータベースのユーザー名とパスワードを見ることはできません。 – cs0815
まあ、特定のユーザーのために、彼はそれらを見つけることができるでしょう。暗号化されていても、ある時点でデータを復号化して接続コールを行う必要があります。卑劣なユーザーは、呼び出されようとしていた場所を見つけ、メモリからユーザー/パスを取得できます。非常に難しいですが、そこには数分でできる人がたくさんいます。 – Corbin