0

2つの異なるアプリケーションがあります。1つはSilverlightで、もう1つはWebアプリケーションです。

両方にシングルサインオンが必要です。

シナリオは次のようなものです。Silverlightアプリケーションにログインしているユーザーは、ログインモードで他のWebアプリケーションを開くためのメニューがそのアプリにあります。

両方のアプリケーションには異なるデータベースがありますが、ユーザー名とパスワードは両方で同じです。

SilverlightアプリケーションにWCFサービスを使用しています。

誰かが解決策を提案できますか?

4

2 に答える 2

0

ASP.NET とフォーム/その他の認証を使用しており、Silverlight アプリは同じ Web サーバーからのものであると想定しています。

まず、このリンクと Visual Studio の Silverlight ビジネス アプリケーション テンプレートを参照してください: http://msdn.microsoft.com/en-us/library/ee942449(v=VS.91).aspx

より手動のアプローチには、ログインの成功時にセッションに保存する「UserToken」を返すまたは設定する WCF サービスを作成することが含まれます。

// the wcf service needs these attributes
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]

// a manual approach: successful login, create a webservice method to call from Silverlight to set the authentication
HttpContext.Current.Session.Add("currentUserToken", userToken);
FormsAuthentication.SetAuthCookie(this.EmailAddressUserControl1.EmailAddressTextBox.Text, false);

フォーム認証は、ASP.Net 要求でユーザーをログアウトさせますが、1 つのサービス要求でセッション タイムアウトを自分で処理する必要があります。

于 2012-06-29T20:17:16.613 に答える
0

私の意見では、ログに記録されたユーザーごとに現在のセッションのトークンを保持するために 1 つの DB を使用する必要があります。この場合、ログインした場所は重要ではありません。このデータベースからログイン トークンを取得します。

于 2012-06-29T12:12:36.883 に答える