私は、互いに話す必要があるいくつかの別々のコンポーネントを持つプロジェクトを持っています。私は今、各コンポーネント間でパーミッションシステムを共有する良い方法を見つけることを試みています。複合システムへの権限の追加
3主要なコンポーネントは次のとおりにいくつかのWCFのWebサービスを提供してい
- アンASP.Net Webアプリケーション
- (Webアプリケーションによって提供)Silverlightアプリケーション
- A Windowsサービス、 Silverlightアプリ。
サーバー(1,3)は両方とも同じデータベースにアクセスできます。各コンポーネント間の通信は、WCF Webサービスによって実行されます。
Windows Service(3)から情報を要求しているユーザーが誰でも、アクセスするための適切なアクセス権を持つユーザーであることを確認する必要があります。 Silverlight App(2)は、リクエストの送信先です。現時点では、Asp.Net App(3)から完全に分離されているため、Windows Service(1)で利用できるユーザー情報はありません。私はユーザー名とパスワードを保存して渡したくないので、ASP.Net App(1)のログイン時に一度だけ資格情報を入力するだけで済みます。
Windowsサービス(3)にユーザーIDを取得するには、どのような方法が良いですか?私が見
(私は以下の答えとして参照可能性を投稿します。)
私はそれを考えていましたが、ハイジャッカーがユーザーIDをWebサービスに渡してユーザーになりすますのは簡単すぎると思います。 セッションIDと同様の状況ですが、セッションIDは時々変更されるべきですが、ユーザーIDは一定のままです。 – grimus
Userオブジェクトは単なるユーザーIDではなく、ログイン時に作成されたメモリ内オブジェクトです(おそらくセッションに格納されますが、必ず読み上げてください)。少なくともセッションIDと同じくらい安全で、簡単に注射できるわけではありません。 –