しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

MachineKey を生成する方法

案外知られていない気がする MachineKey ですが、これを Web.config に書いておかないとフォーム認証でエラーが出て悩まされるんですよね。

今後は時間を無駄にしないためにも MachineKey は最初の方で生成して、Web.config に書くようにすればいいと思います。でも作り方がよくわからないと思うので、簡単にですがまとめておきます。

まずは MachineKey のことを知っておきましょう。最近はちゃんと日本語で説明があるのでありがたいですね。

machineKey 要素 (ASP.NET 設定スキーマ)

要するにクッキーやビューステートの暗号化・復号化に利用されるキーです。レンタルサーバなどで利用する場合には設定しておかないと、何らかのタイミングで値が変わってしまい、クッキーやビューステートの検証に失敗してエラーが表示されるわけです。

MachineKey の生成方法については KB312906 で書かれています。

書いてある C# コードを使うと MachineKey を生成することができます。簡単ですね。

でも簡単なコンソールアプリを作るだけですが、毎回用意するのはめんどくさいですよね…。私は非常にめんどくさいと思いました。なので私がおススメする方法はこれ。

http://aspnetresources.com/tools/machineKey

ブラウザで machineKey を自動で生成してくれるので、あとは Web.config に張り付けるだけ!最強です。

追記

上で紹介したサイトが無くなっていたので、MachineKey を作成する NuGet パッケージを作りました。

インストールするだけで MachineKey を新しく作成するようになっています。