別の問題をデバッグするために、ViewStateなどの暗号化/復号化に使用されている現在のmachineKeyを取得しようとしています。(私のアプリはサーバーファームにあり、各サーバーとアプリケーションのmachine.configとweb.configにマシンキーが設定されているため、一部のリソースが適切に復号化されていない問題をデバッグしようとしています。実験中です。これにより、暗号化に使用されているものを確認できます。)コードスニペットは次のとおりです。
Line 1: Type machineKeySection = typeof(MachineKeySection);
Line 2: PropertyInfo machineKey = machineKeySection.GetProperty("ValidationKey");
Line 3: Object validationKey = machineKey.GetValue(machineKeySection, null);
Line 4: Response.Write(String.Format("Value: {1}", validationKey.ToString()));
現状では、3行目は「オブジェクトのインスタンスに設定されていないオブジェクト参照」をスローしています。これは、おそらく2番目のnullパラメータを正しく設定していないことを意味します(プロパティにはインデックスを付ける必要がありますよね?)。
ただし、machineKeyのValidationKeyプロパティのParameterInfoは、長さがゼロで返されます(したがって、プロパティはインデックス付けされませんよね?)。
ParameterInfo[] paramInfo = machineKey.GetIndexParameters();
Response.Write(paramInfo.Length);
http://msdn.microsoft.com/en-us/library/b05d59ty(v=VS.90).aspx
私がここで見落としていることが明らかにあり、これを見るのに2番目の目が欲しいです。助言がありますか?