MVC4 小技集メモ(2)

FormのCSRF(クロスサイトリクエストフォージェリ)対策

@Html.AntiForgeryToken()と [ValidateAntiForgeryToken]を使うべし

@using(@Html.BeginForm("Create","Hoge")){
        @Html.AntiForgeryToken()
        <fieldset>
           <legend>ほげほげ</legend>
           <input type="text" name="newHoge" size="40" />
           <input type="submit" value="登録" /> 
        </fieldset>
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CreateRole(string newrole){
   ・・・・なんらたかんたら・・・
}

開発マシンで実行するとjavaScript のエラー0x80020003が発生する

ハンドルされない例外 下記ソースコードの行 2530、列 4 で発生しました。
 http://localhost:28060/Scripts/jquery-1.8.2.js
0x80020003 - JavaScript 実行時エラー: メンバーが見つかりません。

ブラウザーモードがIE10互換表示になっているとこのエラーが発生するもよう。
F12を押して、ブラウザーモードをIE10にしておく。

補足:IE10互換になっているとIE7モードが選択されていた。IE7だとjavaScriptエラーになったり、半角入力のみを許すはずなのに全角入力もできてしまうというvalidationチェックが無視されることもあった。

毎回切り替えるのもめんどうなので、
【_layout.chtml】にX-UA-CompatibleをIE10にする指定を追加した。
これで常にIE10としてブラウザが起動する。

<!DOCTYPE html>
<html lang="ja">
    <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=10" />

	※最新のモードを使ってほしいときはIE=Edgeと記述すればよい
	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
   ・・・・なんらたかんたら・・・ 省略・・・・

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

前の記事

MVC4 小技集メモ(1)