2010-12-03 6 views
1

私はEntity Frameworkを使用しており、多くのデータベースとサーバーで同じモデルを使用しています。ログインしたユーザーに基づいて実行時に接続文字列を設定したいと思います。私は現在、私のDomainServiceでCreateObjectContext()をオーバーライドしており、そこに接続文字列を設定しています。これは素晴らしいですが、私はセキュリティの不足に懸念しています。たとえば、私のDomainServiceでは、新しいエンティティが必要になるたびに接続文字列で渡すSetConnectionString()という呼び出しメソッドがあります。これはDomainContext(クライアント側)から行われています。私はSQL統合セキュリティを使用しているので、誰かがクリエートで接続文字列を操作して、使用を許可されていないデータベースにアクセスできる可能性があります。Silverlightセキュリティエンティティフレームワークとの接続文字列を動的に設定するときのセキュリティ

実行時に使用するドメインエンティティの接続文字列を動的に設定する最も安全な方法は何ですか?

プロジェクトIDやその他の情報を渡した場合、DomainServiceから検索できるデータベースにデータベース名とサーバー設定がありますが、私は同じ問題に直前です - 誰かこの情報を簡単に偽装することができます。

アイデア??

-Scott

答えて

0

同じセキュリティ問題をフラッシュ開発者が直面しているとうまくいけば、私の答えは関連性がある...

(これは本当に安全なクライアントから、「この」でデータベース接続を作成するための唯一の方法各ユーザーにデータベース内のデータへの読み取り専用アクセスしか持たないようにすることです。

実現しているように、ユーザーがサーバーに送信しているデータを監視/変更するのを止める方法はありません。あなたがコミュニケーションを暗号化しても、ユーザーはまだコードにアクセスすることができ、フラッシュの場合は、簡単な逆コンパイルのためにソースコードにアクセスできます。

私はDB開発者ではありませんが、頻繁に質問するようなセキュリティ監査を行っていますので、以下のアドバイスが間違っている可能性がありますが、私はグーグルで、ユーザーを制限するために資格情報のセット)を特定の情報に変換します。

ない場合は、この記事では、あなたが望むものに関連すると思われる:

http://technet.microsoft.com/en-us/library/cc966395.aspx

0

何ASP.NETメンバーシップフレームワークを使用してはどうですか?フレームワークのログイン呼び出しでユーザーのログインを結び、ユーザーが承認されたユーザーであることを確認します。ドメインサービスで保護する各機能に「RequiresAuthentication」属性を追加します。

SilverlightでASP.NETメンバーシップを使用する方法の詳細は次のとおりです。WCF RIA Services - Authentication, Roles, and Profiles

関連する問題