1

ASP.NET アプリケーション (実際には Silverlight を使用していますが、それは問題ではありません) は、フォルダー ホーム ページとして Outlook でホストされます。このアプリケーションには、Outlook ではなく別の IE ウィンドウを開くポップアップ ウィンドウを開くためのリンクがあります。

問題は、この場合、ASP.NET セッションが失われたように見えることです。ASP.NET サービスへの呼び出しは、Session に何もなく、Session._id が異なります。Outlook には IE とは異なる Cookie があると思われます。

Outlook から IE ポップアップを開くときにセッションを保持するにはどうすればよいですか? 何らかの形で URL 経由でセッション ID を渡すか、web.config でこれを構成しますか?

Cookie のないセッションは必要ないことに注意してください。

4

2 に答える 2

0

ユーザーの ASP.NET_SessionId Cookie の値を Outlook の URL に渡してから、IE で開いたページでその値を確認し、ページをロードする前に応答で ASP.NET_SessionId Cookie を複製します (おそらくセッションがリクエスト用に読み込まれる前に IHttpModule 内で)。

ASP.NET に組み込みのセッション ハイジャック セキュリティが組み込まれている場合にこれが機能するかどうかは 100% 確信が持てず、何らかの方法でセッション Cookie を手動で複製することはできませんが、そこから始めます。

于 2010-04-28T15:57:11.497 に答える
0

私は過去にこの問題に遭遇しましたが、Outlook のブラウザーがまったく異なるプロセスで実行されており、典型的な IE 環境でさえないため、回避策を見つけることができませんでした。思い出すと、パススルー認証にも問題がありました。

同じ動作を IE で直接行うと、実際には同じセッションを使用して別のウィンドウが開きます。

Outlook で発生しているプロセスを IE で再作成するには、IE ウィンドウを開いてアプリに移動します。次に、ショートカットをクリックして (現在の IE セッションから起動するのではなく) 新しい IE ウィンドウを開き、リンクをコピーしてアドレス バーに貼り付けます。これは基本的に Outlook が行っていることです。

于 2010-04-28T15:27:21.843 に答える