2012-02-20 3 views
0

Windows 2008サーバーで実行されているIIS6でホストされているASP.NETページがあります。ページには、同じアプリケーション内のページを呼び出す2つのiframeがあります。大文字と小文字を区別するURL(IE8)でセッションが失われる

ブラウザ(IE8、compatモード)で表示すると、セッションはiFrames内で失われます。

IISには「App」という仮想ディレクトリが設定されているため、Webサイトにはhttp://localhost/Appでアクセスします。

ブラウザに入力すると問題が発生します。http://localhost/app - 大文字と小文字の区別に注意してください。

私が知っている限り、URLは常に大文字と小文字を区別しませんが、この例では明確ではありません。いくつかのテストの後、重要な要因は、ブラウザに入力されたURLがiframeのURLのものとまったく同じケーシングでなければならないことです。または、少なくとも2つのURL間の仮想ディレクトリのケーシング。

簡単な解決策は、仮想ディレクトリで使用されているブラウザーと同じURLケーシングをブラウザーで使用することですが、これはユーザーにとっては少し難しいことです。

iFrameのURLをブラウザのURLと一致させるためにURLを書き換えたり、文字列を操作したりすることを考えましたが、ちょっとハッキーで信頼性が低いようです。

他に誰かがこれを経験しているのですか、それとも単純にIEの設定が変わるのですか?

おかげで、

答えて

1

のURL 大文字と小文字が区別されます。要求URLを処理するときには大文字と小文字が区別されないIIS & ASP.NETですが、使用するすべてのブラウザでCookieパスの大文字と小文字を区別する必要があります。これはあなたが変えるべきものではありません。

誤って入力されたURLを使用してリクエストを正しいものにリダイレクトすることで回避できます。このためにIHttpModuleを記述するか、IIS7を使用している場合はオプションのApplication Request Routingモジュールを使用します。

関連する問題