2

しばらく前に、私は大規模な開発プロジェクトをCookieの使用からlocalStorageの使用に切り替えました。しかし、私は少しガンホーであり、一部のCookieが実際にサーバー上で必要であることに気づきました。

これらをlocalStorageからCookieの使用に戻しました。ただし、暫定的に、Win7開発ボックスにIE10をインストールし、開発サーバーをIISExpressからローカルで実行されているISS7.5に切り替えました。

Fiddlerがローカルトラフィックを傍受できるようにするために、URLを介して開発ページにアクセスします

http://local_iis/ 

これは、Hostsファイルで次のように識別されます。

local_iis 127.0.0.1

ただし、IE10は、このテストページでこのドメインからページにアクセスするときにCookieを設定できません。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        document.cookie = "test=value";
        alert(document.cookie); // gives "" in IE 10
    </script>
</head>
<body>

</body>
</html>

ただし、以下のいずれかからテストページを実行すると、Cookieが設定されます(値が警告されます)

http://localhost/
http://127.0.0.1/    

FFとChromeの両方でCookieが正しく設定され、アラートが送信されます。これは、開発とテストにIEのみを使用しているため、セキュリティ設定を変更して、[プライバシー]タブと、[セキュリティ]タブの[ローカルイントラネット]ゾーンと[信頼済みサイト]ゾーンの両方ですべてを許可するようにしました。 。信頼できるサイトにもlocal_iisを追加しました。

まだCookieが設定されていません。

誰かが理由を知っていますか?

4

1 に答える 1

7

ここにある別のトピックと言及されたMSブログのフォローアップによると、これはマシンの名前にアンダースコアが含まれているために発生します! 邪悪ですね。

これを参照してください:

Q5: ホスト名/ドメインにアンダースコアが含まれている場合、IE は Cookie を設定しませんか?

A: 正解です。技術的には、アンダースコアは DNS 文字ではありません。Windows ではマシンの名前を付けるときにアンダースコアを使用できますが、使用すると問題が発生する可能性があることが警告されます。そのような問題の 1 つは、WinINET がそのようなドメインに Cookie を設定しようとする試みをブロックすることです。

于 2013-04-10T15:48:30.107 に答える