19

動作中の .NET MVC アプリケーションがありますが、Windows 8 で IE10 を使用してアクセスすると、ブラウザーのソース コードはすべての動的に生成された URL を示します。とUrl.Action("Index", "Home")は次のように書かれています。

/(F(usb6gVWyFnXevozQyFvVxVdbsN0uM9kZ5wNu9gT9pWBINGuodOdzLKkIQzfhqy3UhnCLyXf78LugXZO2UPYfMbNzSJJawmbqUBL56TjKpXgWpiMdVAjB1T3YcPlGhZePwFd6C9P_f_Y89KiDnWcA9EfR1m0ud3IcBYTW8OwZxOMTd8bxt5hM8mgXVN6OSdoo3IMwRA2))/ Home/Index

それ以外の:

/ホーム/索引

リンクを静的 HTML で記述すると、次のようになります。

<a href="/Home/Index">[linktext]</a>

IE10 はログイン ページにリダイレクトします。問題は、最初のサイトに戻るリンクがあるパートナー サイトに移動するために、一時的にサイトを離れる場合です。挿入されたコードが欠落しているため、戻り URL は無効になり、ログインにリダイレクトされます。

このコードが挿入された理由を誰でも知っています (フレームワークまたは IE10 の問題?)

4

3 に答える 3

22

このコードは、ASP.NET の Cookie を使用しないセッション機能の一部です。次のように web.configセクションで無効にできます。<configuration><system.web>

<sessionState cookieless="false" />

または:

<forms cookieless="UseCookies" />

なぜIE10がそうしているのかわかりません。おそらく、更新された IE10 情報を含む app_browsers にブラウザー ファイルを追加して、Cookie をサポートしていることを伝えることができます。または、Cookie を無効にしている可能性がありますか?

于 2012-09-01T15:01:30.843 に答える
8

.NET 2.0 および .NET 4 に同梱されているブラウザー定義ファイルにはバグがあります。つまり、特定の範囲のブラウザー バージョンの定義が含まれています。ただし、一部のブラウザー (IE 10 など) のバージョンは、これらの範囲内にありません。したがって、ASP.NET はそれらを未知のブラウザーと見なし、JavaScript や Cookie などの機能をサポートしていないなど、特定の不都合がある下位レベルの定義にデフォルト設定します。

Microsoft は、問題を修正する修正プログラムをリリースしました。

ソース

于 2012-09-01T15:08:53.883 に答える
1

cookieless="UseCookies"このように web.config ファイルを追加します。

<authentication mode="Forms">
  <forms loginUrl="~/YourLoginUrl" timeout="2880" **cookieless="UseCookies"** />
</authentication>

このリンクから引用されたこの解決策; https://stackoverflow.com/a/15510453/2057154

于 2013-04-12T13:48:16.017 に答える