ASP.NET 4.0アプリケーションのフォーム認証をhttp://example.comに設定しています。これをMainAppと呼びます。 私はまた、http://static.example.com(それをSubAppと呼ぶ)上で実行しているASP.NET 4.0アプリケーションをメインアプリケーションにアクセスすることができません。サブドメインの認証されたユーザーのユーザー名を取得する
ここで、SubAppは、MainAppに最初にログインしてからSubAppに来たユーザーのユーザー名を把握する必要があります。私は、2つのアプリケーションが同じマシンキーを持ち、SubAppがweb.configで指定するだけで、MainAppの認証Cookieを読み込んでそこからユーザー名を取得できると思った。
私は単純なテストを行いましたが、SubAppでいくつかのページをヒットしようとすると、web.configに指定されていなくても存在しないhttp://static.example.com/login.aspxにリダイレクトされ続けます。明らかに私のアプローチはうまくいかず、メインドメインのクッキーはサブドメインでアクセスできるはずです
これは私がSubAppで認証を設定する方法である:
<authentication mode="Forms">
<forms domain="example.com"/>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
ありがとうダーリン、それは動作するようです今 - 私はHttpContextからユーザーの名前でログインすることができます。しかし、私は別の問題を参照してください - TEHユーザーがログインしていないとき、それはまだ私が追加されていても、それらがページをlogin.aspxのためにリダイレクトする<承認> \t \t \t <許可ユーザー=「*」/> \t \t承認> をサブアプリケーションのweb.configに追加します。何か案は? – Andrey
@Andrey、サブアプリケーションでどのように認証を処理していますか?誰がリダイレクトしていますか?なぜすべてのユーザーを許可していますか? –
私のサブアプリケーションは、ユーザーからのファイルアップロードを投稿するために使用しているハンドラの1つです。そのハンドラでしたいのは、ユーザが認証されているかどうかを確認し、投稿されたファイルを保存することです。ユーザが認証されていない場合は、401を返します。ユーザーはアップロードハンドラ以外のSubAppとやり取りしないでください。ログインページは必要ありません。SubApp – Andrey