簡単な質問: MVC3 Web アプリケーションでサファリによってエラーが発生するのはなぜですか? Request.Form が何らかの理由で空白になっているのはなぜですか?
詳細な質問: 私の MVC3 Web サイトは、キャッチされない例外があるたびにメールを送信します。これらを使用して、バグをすばやく見つけて修正します。電子メールには、例外、スタック トレース、ユーザーの IP アドレス、ユーザー エージェント文字列、および投稿された可能性のあるフォーム値が含まれています。
最近、追跡が困難であることが判明したエラーに気付きました。他の人の助けになることを願って、ここに調査結果を投稿しようと思いました。
元の症状は次のエラーでした: System.Web.Mvc.HttpAntiForgeryException: 必要な偽造防止トークンが提供されなかったか、無効でした。
私のフォームのアクションはエラーをスローしていました.__RequestVerificationToken隠しフィールドや他のフォームフィールドを持たない状態にページを取得した方法を理解できませんでした.
そのため、Cookie とトークンの仕組みを調べるのに何年も費やし、最終的に ActionResult の [ValidateAntiForgeryToken] 属性を削除して、それがどのように行われたかを確認しましたが、それでもエラーが発生しました。
その後、useragent 文字列が、問題を引き起こしているのは Safari 5.1.7 のみであることを示していることに気付きました。