DigiPub Japan

machineKeyの設定

【関連サイト】
GenerateMachineKeyツール
【最近のページ】
【お知らせ】

machineKeyの設定方法



 ビューステート・データの暗号化と複合化などに使用するキーをmachineKeyで設定します。通常は、machine.configで設定しますが、アプリケーションごとに設定する場合には、web.configで設定します。
 その設定方法はmsdnで公開されていますが、その設定例がすべて、以下のようにAutoGenerateの指定ばかりのなので、具体的にどのように指定すべきか明確でありません。

<machineKey
validationKey="AutoGenerate,IsolateApps"
decriptionKey="AutoGenerate,IsolateApps"
validation="SHA1"
/>

 ここでのAutoGenerateを指定したままですと、長時間無入力の後、ビューステートを復元しようとした場合に、暗号化キーが変化してしまい以下のようなエラーが発生するようです。

 《エラーメッセージ》 
 viewstate MAC の検証フィールドです。このアプリケーションが Web Farm またはクラスタによってホストされている場合、machineKey構成が同一の validationKey および検証アルゴリズムを指定していることを確認してください。AutoGenerate をクラスタで使用することはできません。


 そこでAutoGenerateに代えて、16進数の文字列を指定する必要がありますが、その設定を簡単にしてくれるのが、Keith Brown氏のGenerateMachineKeyツールです。これはC#によるテキスト生成ツールであり、コマンドラインから以下のように実行し生成します。


GenerateMachineKey > machinekey.txt

 このテキストファイルは、以下のようになります。

<machineKey validationKey='4B6A312653DD936CDFA51E64B85F28AD1B0961D808519
 A1BF4595664A843843E413D3EC9C1282778D2278690821
 F24D1BC4178C2DC1DF3E9A6A81254BC0039DB'
decryptionKey='AD80B01921BC6D74B80FF69E1A2A24F74E1A977B90EB23FA'
validation='SHA1'/>


 この中で、シングルクォーテーション(')をダブルクォーテーション(")に変更し、また必要に応じて上記のようにIsolateAppsオプション(一意の暗号化キーがアプリケーションごとに生成される)を付加すれば完成です。

 なお、このmachineKeyの設定は、web.configの中で、<system.web>から</system.web>までの間に設定します。


 
   Page: 667
Rss News
【お勧めページ】
【過去のページ】
<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789