1

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> 

答えて

3

あなたは両方のアプリケーションのWeb.configに<forms>タグのdomainプロパティを設定してみてください:

<authentication mode="Forms"> 
    <forms 
     loginUrl="~/Account/LogOn" 
     timeout="2880" 
     domain="example.com" 
    /> 
</authentication> 

これが効果的に設定されますexample.comstatic.example.comの両方の認証Cookieの有効性。つまり、最初のドメインで認証されたユーザーは、2番目のドメインで自動的に認証されます。

+0

ありがとうダーリン、それは動作するようです今 - 私はHttpContextからユーザーの名前でログインすることができます。しかし、私は別の問題を参照してください - TEHユーザーがログインしていないとき、それはまだ私が追加されていても、それらがページをlogin.aspxのためにリダイレクトする<承認> \t \t \t <許可ユーザー=「*」/> \t \t をサブアプリケーションのweb.configに追加します。何か案は? – Andrey

+0

@Andrey、サブアプリケーションでどのように認証を処理していますか?誰がリダイレクトしていますか?なぜすべてのユーザーを許可していますか? –

+0

私のサブアプリケーションは、ユーザーからのファイルアップロードを投稿するために使用しているハンドラの1つです。そのハンドラでしたいのは、ユーザが認証されているかどうかを確認し、投稿されたファイルを保存することです。ユーザが認証されていない場合は、401を返します。ユーザーはアップロードハンドラ以外のSubAppとやり取りしないでください。ログインページは必要ありません。SubApp – Andrey

0

ダーリンは素晴らしいです。

メインドメインでは、両方のフォーム認証でサブドメイン(window.open ...)を呼び出しています。私の開発マシンとクラウドのクロムはクラウドのIE10では動作しません。

基本的に両者は同じデータベースを使用しているため、メインドメインによってサブドメインにデータベースに格納されたGUIDが渡されます。これは、その後、私は クエリ文字列 とFormsAuthentication.SetAuthCookie(MyUserID.ToString)によって設定されたアイデンティティから

を検証しました - 「=セットCookieなし - ブラウザファイル を追加 - ( のおかげで、サーバー上の修正プログラムの更新を試してみましたweb.configファイル

でUseCookies」が、私はそれがIE10で働いていたルートドメインにドメインプロパティを設定するまで、それは1つの小さな問題のために...研究の4日間ではなかった。

はい! !!

+0

これはコメントではなく、回答に属します。私はあなたがサイトの初心者であることを理解しています。将来の投稿についてはそのことを念頭に置いてください。 – Andrey

関連する問題