WCF RIA サービスを含む Silverlight 5 アプリを開発しています。アプリは多くの Web サービス呼び出しを行い、各呼び出しには要素と属性が渡される必要がusername
あります。これらの呼び出しには、「システム管理者」のユーザー名とパスワードを使用するものもあれば、ユーザー自身のログイン資格情報を使用するものもあります。いずれの場合も、値はユーザーのログイン時に設定されます。password
dsn
dsn
だから私の質問は、これらすべてをどこに保管するのですか? ここで 2 つの重要なシナリオをリストします。誰かが助けてくれることを願っています。
認証
メソッドをオーバーライドしValidateUser(string username, string password)
て実際に認証を行うカスタム メンバーシップ プロバイダーを作成しました。そのメソッドのコードは、(メイン ページが読み込まれたときに表示される子ウィンドウで) ユーザーによって提供されたユーザー名とパスワードを使用して、Web サービスを呼び出します。
子ウィンドウで、ユーザーは使用したい DSN を選択できます。ValidateUser()
しかし、それをメンバーシッププロバイダーのメソッドに取得する方法がわかりません。
認可
ユーザーが認証されたら、サーバーが呼び出しを行ってユーザーに関する詳細情報を取得し、それをユーザー プロファイルの一部として保存する必要があります。そうすれば、後でアプリケーション ロジックや UI 要素で使用できます。この呼び出しは、システム管理者の資格情報と、ユーザーが子ウィンドウで選択した DSN を使用します。
生成されたプロキシは*Completed
、各 SOAP アクション メソッドのイベントを提供します。イベント ハンドラーを割り当てて、そこでこの認証ビットを処理できると考えています。では、クライアント プロジェクトとサーバー プロジェクトでアクセスできるシステム管理者の資格情報はどこに保存すればよいのでしょうか?
認証ドメイン サービスを次のように実装しました。
using System.ServiceModel.DomainServices.Hosting;
using System.ServiceModel.DomainServices.Server.ApplicationServices;
namespace THINKImportSystem.Web
{
[EnableClientAccess]
public class AuthenticationDomainService : AuthenticationBase<User>
{
}
public class User : UserBase
{
}
}