同じサーバーで 4 つのシステムを実行しています。ユーザーがすべてのシステムに 1 回ログインできるようにしたい。ユーザーを作成して編集するためのユーザー管理システムを 1 つ作成しました。
セッションで保存しようとしましたが、役に立ちませんでした。
助言がありますか?私はasp.netに取り組んでいます。
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はそこで機能しません。
これを行う最善の方法は、Federated Security を使用することです。Windows 認証を使用していた場合は、Active Directory フェデレーション サービス (ADFS) を使用できます。このモデルでは、ユーザーが Web アプリケーションを参照し、現在のスレッドのプリンシパルがチェックされます。値が null の場合、web.config に保存されている情報は、要求をログイン ページに自動的にリダイレクトします。これは、Windows セキュリティ コンテキストがないことを前提としています。それ以外の場合、ユーザーは自動的にログインできます。
ユーザーが環境に正常にログインすると、スレッドのプリンシパルが設定され、そのユーザーに固有の一連のクレームが発行されます。クレームは、特定のアプリケーションではなくプリンシパルに関連付けられているため、クレーム対応アプリケーションで全面的に使用できます。
Windows 認証を使用していない場合でも、同じことを行うことができます。唯一の問題は、ADFS を使用できないことです。代わりに、独自の ID プロバイダーを実装して ADFS を置き換える必要があります。.NET Framework は、それを実現するのに役立つ基本クラスとインターフェイスを提供します。
シングル サインオンですべてのアプリケーションにアクセスするには、ActiveDirectory または任意の LDAP サーバーを調べることをお勧めします。LDAP を使用できない (または使用したくない) 場合は、任意のメモリ/ディスク ストアで同様の機能を実装できます (ただし、より多くの開発作業/時間が費やされます)。これが不可能な場合は、他の人に役立つ可能性があるため、その理由を共有してください。
お役に立てれば。