1

ログイン後にサーバーからリダイレクトを発行する場合、次を使用します。

return Redirect("/Some/Location");

これは、iPad の Chrome Mobile を除くすべてのブラウザで完全に機能します。このブラウザの場合、リダイレクトに対する応答の Location は次の形式です。

Location: /(F(kE-dzlf...lots of random characters))/Some/Location

問題は、なぜこのランダムな文字列がサーバーから返されるリダイレクト URL に追加されるのかということです。

残念ながら、さまざまなルーティングの問題により、これはアプリケーションに深刻な問題を引き起こします。

さらに調査した結果、Windows のデスクトップ Chrome を使用し、ブラウザのユーザー エージェントを iPad の Chrome Mobile と同じようにスプーフィングすることで、同じ問題を再現できることがわかりました。

Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/27.0.1453.10 Mobile/10B329 Safari/8536.25

MVC サーバー上の特定のユーザー エージェント文字列で奇妙な動作が発生しているようです。上記の文字列のさまざまな部分文字列でさえ、同じ動作を生成します。

これはおそらくある種の Cookie 受け渡し方法であると推測していますが、確かではありません。

ありがとう。

編集: この問題の解決策は、次の場所にあります: Asp.Net Forms Authentication when using iPhone UIWebView

4

1 に答える 1

3

これは、ブラウザーで Cookie が有効になっていないか、IIS がユーザー エージェントが Cookie をサポートしていないと想定しているためです。リダイレクトは、ユーザー セッションの SessionID を URL に挿入しています。私は MVC に特に精通していませんが、これは WebForms と同様に web.config ファイルで制御されているのではないかと思います。

http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.71).aspx

于 2013-06-07T16:02:06.417 に答える