2011-08-01 12 views
3
  • ASP.NET MVC2
  • .NET 3.5
  • をFormsAuthentication
  • URL:domain.com/myapp
  • 問題領域:動的に作成されたPDFはFileContentResult
  • として返さ

IE8まではすべてうまく機能していました。 IE8では、ユーザーがPDFを開いてアプリに戻ると、彼は認証を失いました。私はフォームの認証クッキーに期限を追加し、問題は解決されたように見えました。しかし、私は後で同じ問題が親アプリで発生することを発見しました。永続的なCookieを使用すると、ユーザーが自分のアプリ(domain.com/myapp)で続行しても問題ありませんが、親アプリケーション(domain.com)ウィンドウに戻ると認証が失われます。親アプリケーションは、セッション状態に依存する独自の認証および承認アーキテクチャを使用します。認証損失

私の問題を理解するには、FileSystemResultにセッション情報が含まれていないため、セッションが失われているということです。私は、クッキーに有効期限を追加することで、クッキーは永続化され、ドキュメントが開かれたときでさえ、アプリケーションで永続化することができることを理解しています。

なぜ私のクッキーに有効期限を追加すると、親アプリに問題が転送されたのか分かりません。 だから、私は間違っていました。これは親の中で起こっています。興味深いことに、何が起こっているのかを見るためにフィドラーをつかんだとき、問題はなくなりました。

これを解決するための提案はありますか?私は、ファイルをサーバに書き込んだり、直接ファイルを開くためのリンクを持ったページを返すというような、本当に醜い何かを考えることはできません。

this questionに基づいて私はホースしていると思います。

+0

ユーザーはどのようにアプリに戻っていますか?戻るボタン? PDFビューアを閉じますか? –

+0

@Shiraz:ウィンドウは開いたままです。 PDFダウンロードでは、Open-Save-Cancelダウンロードダイアログボックスが表示されます。 – Leslie

+0

@Shiraz:また、親アプリは新しいウィンドウで子供を開きます – Leslie

答えて

1

あなたの問題のルートになる可能性のある持続性CookieをIE8が処理する方法にはいくつかの変更があります。可能な解決策を説明する興味深いpostがここにあります。

ソリューションは 、オンラインそれを信じるかどうかを見つけるために私たちにはかなり時間がかかりましたし、我々はそれを見つけたとき、私たちは 早くそれを見つけていないために自分自身をキックしたかったです。それは、 アプリケーションのweb.configファイル内のフォーム 認証設定のドメイン属性に由来します。私たちは通常、そのアプリケーションの属性を空白のままにして、 にしておきます。さらに、 の上の他のブラウザのどれもその設定について気にせず、うまく機能しました。ただし、IE8では が変更されましたが、その属性は必須です。

+0

この情報をありがとう。一部のユーザーが、ブラウザのセキュリティ設定を変更しているIT担当者によって解決された問題にログインする理由を説明しています。残念ながら、親アプリの動作は変更されません。アプリでPDFを表示した後も、ユーザーは引き続き親からログアウトします。 PDFを表示しない場合は、再度ログインしなくても親に続けることができます。 – Leslie

+0

PDFの子アプリケーションでセッション状態をオフにしてみます。親の実装が独自のものである場合、何が起こっているのかを知ることは困難です。リンクをクリックすると、Fiddlerを使用してCookieを監視します。これは「自己」を開きますか?それは同じドメインにありますか? – TheCodeKing

関連する問題