Ieの下で実行されているベースWebサイト(Asp.net WebFormsアプリケーション)があります。
http://localhost:90/
次に、新しい(今回はAsp.net MVC)アプリケーションを作成し、その下に追加しました
http://localhost:90/mvc/
ただし、単純な仮想フォルダーとしてだけでなく、と比較して、実行するために別のアプリケーションプールを定義することによりアプリケーションフォルダーとして親アプリケーション。
ブラウザは、基本的に同じドメインに2つの異なるアプリケーションがあることを認識できないため、次のように機能します。
http://localhost:90/
http://localhost:90/mvc
にアクセスしますこの同じCookieに基づいてユーザーを認証することは可能ですか?共有認証画面を持つように、親アプリにログインリダイレクトするようにMVCアプリケーションを構成します。しかし、その時点から誰が認証して作業するのか知りたいのですが。
この種の機能を提供するために同じsystem.web/machineKey
値を共有することについて何か読んだことがありますが、実際の例をいくつか示したいと思います。
これらの2つのアプリケーションはセッション状態を共有できず、共有したくないので問題にはならないことは承知しています。私が欲しいのは一種のシングルログイン(SSO/SSS)です
これは可能ですか?どのように?
これに関する他の質問/回答を読みましたが、クロスドメイン/クロスサーバーなどについて質問しています。これは同じIIS Webサイトにあります。
自分で見つけました。
これは、このシナリオについて正確に説明しているMSDNの記事です。とにかく、同じ情報を後で追跡する人のために、この質問を続けることにしました。
両方のアプリケーションのweb.config
でマシンキーを構成して、それらが一致するようにする必要があります。これにより、相手が生成したデータをデコードできるようになります。そして、それが全体のトリックです。 MSDNの記事では、これらのキーの生成方法を含め、これについて詳しく説明しています。
それでも誰かがキーを共有できない場合は、compatibilityMode="Framework20SP1"
<machineKey validationKey="same key all over"
decryptionKey="same key all over"
validation="SHA1" decryption="AES"
compatibilityMode="Framework20SP1"/>