0

同じサーバーで 4 つのシステムを実行しています。ユーザーがすべてのシステムに 1 回ログインできるようにしたい。ユーザーを作成して編集するためのユーザー管理システムを 1 つ作成しました。

セッションで保存しようとしましたが、役に立ちませんでした。

助言がありますか?私はasp.netに取り組んでいます。

4

3 に答える 3

0

2 つのアプローチがあります。

ほとんどの場合、中央サイトで発生するログインを中心に解決し、ターゲット サイトがユーザーを取得するために使用する ID 情報フィールド (ログイン トークン) を返します。

別のサイトに移動すると、そのサイトはすぐに中央のサイトにリダイレクトし、ログインしている場合 (永続的な Cookie) は、あなたの ID を取得します。

あるいは、リファラーを使っていろいろなことをすることもできます。

あなたはインターネットでいくつかの調査をしたいと思っています.あなたが見ているのは「シングルサインオン」です.

http://www.codeproject.com/Articles/27576/Single-Sign-on-in-ASP-NET-and-Other-Platforms

いくつかの技術的な議論があります。

あなたが読むことができる完全に別々のウェブサイト(ドメイン)にわたって

http://aspalliance.com/1513_Cross_Site_Authentication_and_Data_Transfer

どうやってそれを行うか-明らかに共有Cookieはそこで機能しません。

于 2012-07-07T14:58:35.470 に答える
0

これを行う最善の方法は、Federated Security を使用することです。Windows 認証を使用していた場合は、Active Directory フェデレーション サービス (ADFS) を使用できます。このモデルでは、ユーザーが Web アプリケーションを参照し、現在のスレッドのプリンシパルがチェックされます。値が null の場合、web.config に保存されている情報は、要求をログイン ページに自動的にリダイレクトします。これは、Windows セキュリティ コンテキストがないことを前提としています。それ以外の場合、ユーザーは自動的にログインできます。

ユーザーが環境に正常にログインすると、スレッドのプリンシパルが設定され、そのユーザーに固有の一連のクレームが発行されます。クレームは、特定のアプリケーションではなくプリンシパルに関連付けられているため、クレーム対応アプリケーションで全面的に使用できます。

Windows 認証を使用していない場合でも、同じことを行うことができます。唯一の問題は、ADFS を使用できないことです。代わりに、独自の ID プロバイダーを実装して ADFS を置き換える必要があります。.NET Framework は、それを実現するのに役立つ基本クラスとインターフェイスを提供します。

于 2012-07-07T17:54:59.483 に答える
-1

シングル サインオンですべてのアプリケーションにアクセスするには、ActiveDirectory または任意の LDAP サーバーを調べることをお勧めします。LDAP を使用できない (または使用したくない) 場合は、任意のメモリ/ディスク ストアで同様の機能を実装できます (ただし、より多くの開発作業/時間が費やされます)。これが不可能な場合は、他の人に役立つ可能性があるため、その理由を共有してください。

お役に立てれば。

于 2012-07-07T14:50:32.230 に答える