大昔に紹介した MachineKey をオンラインで生成できるサイトが、いつの間にかドメインごと消滅していてとても不便だったので、代わりになるものとして MachineKey を自動的に生成し、Web.config に設定まで行う NuGet パッケージを作りました。
このパッケージをインストールすると、自動的に Web.config に machineKey 要素が追加されます。今のところ AES256 と HMACSHA256 で固定にしています。
MachineKey に関してもう少し知りたいという場合には、下の記事を参考にしてください。
1 つのアプリケーションを複数の仮想マシンで動作させる場合、問題となることが多いです。
例としてパッケージマネージャーコンソールから、MachineKeyGenerator をインストールしてみました。
インストールするとテキストファイルも追加されますが、これは NuGet の仕様でパッケージに content か lib が含まれていないと install.ps1 / uninstall.ps1 が実行されないので、仕方なく入れています。
Web.config を開くと machineKey 要素が追加されているのが確認できます。本当は 1 行で追加されますが、分かりにくいので改行してあります。
パッケージをアンインストールすると、MachineKey も同時に削除するようにしています。*1
既に MachineKey を設定済み、もしくは NuGet パッケージの復元を行った場合には処理をスキップするようにしています。一度設定した MachineKey が変わることはありません。
実際に NuGet パッケージの復元を行いましたが、MachineKey は変わっていません。
PowerShell 力は相変わらずですが、少しコードを整理した後に GitHub にでも置いておこうかと思います。
追記
GitHub にスクリプト一式を置いておきました。build.cmd を叩けば nupkg が生成されます。
*1:この仕様は後で変更する可能性ありそう