2017年2月24日金曜日

ASP.NET MVC の AntiForgeryToken がIE,Edgeでエラー

ASP.NETにはCSRF対策にTokenを発行して検証してくれる機能がありますが、IEとEdgeでだけエラーになり、FirefoxとChromeでは大丈夫、しかもデバッグ時にはIEやEdgeでもエラーにならないという不可思議な現象に悩まされました。

必要な偽造防止 Cookie "__RequestVerificationToken" が存在しません。

結構ハマってしまったのですが、原因はこれでした。

Cookie を使用するドメインでは、ドメイン名およびサーバー名に英数字 ("-" または ".") だけを使用しなければなりません。サーバー名にアンダースコア ("_") など、その他の文字が含まれている場合、Internet Explorer は Cookie をブロックします。

デプロイ先のテスト環境のドメインに「test_xxxx」とアンダースコアが含まれていたのが原因でした。
結構古くからの常識のようで、まだまだ勉強不足を痛感します。

以上メモまで。


2017年2月14日火曜日

Chromeのアドオンでキャプチャした画像がMS Officeに貼り付けられない

FireShotなどの画面キャプチャアドオンが便利ですが、それでキャプチャしたデータをMS OfficeのWORDやEXCEL、POWER POINTなどに単純に貼り付けようとすると上手くいきませんでした。

どうもBASE64エンコードされた画像データを直接Ctrl+Vで貼り付ける事ができないようです。(違ってたらすみません)

解決策1
「形式を選択して貼り付け(Ctrl + Alt + V)」で「ビットマップ」を選択して貼り付ける。

解決策2
ペイントにいったん貼り付けてからコピー&ペーストする。

解決策3
FireFoxのFireShotアドオンを利用する。

解決策1だとかなり手間です。
「ブラウザのキャプチャした画面を表示しアドオンをクリック」→
「キャプチャ後表示された画像を右クリック『画像をコピー』を選択」→
「Officeウィンドウ上で『形式を選択して貼り付け』を選択」→
「『ビットマップ』を選択してOKをクリック(Enter)」

解決策2もキャプチャ表示された画像を右クリックしてコピーという作業は必要ですし、
いったん別のウィンドウ(ペイント)を経由するのでひと手間かかります。

FireFoxを起動しないといけないという問題はありますが、直感的にパパっと作業できる3の方法が当面の解決策でしょうか。

もっと良い解決策もありそうですが、ひとまずメモ