Я пытаюсь получить текущий ключ машины, который используется для шифрования/дешифрования моего ViewState и т. д., пытаясь отладить другую проблему. (Мое приложение находится на ферме серверов, и в файлах 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 выдает «Ссылка на объект не установлена на экземпляр объекта». это означает, что я, вероятно, неправильно устанавливаю этот второй нулевой параметр (свойство должно быть проиндексировано, верно?).
Но ParameterInfo свойства ValidationKey для machineKey возвращает нулевую длину (поэтому свойство не индексируется, верно?).
ParameterInfo[] paramInfo = machineKey.GetIndexParameters();
Response.Write(paramInfo.Length);
http://msdn.microsoft.com/en-us/library/b05d59ty%28v=VS.90%29.aspx
Очевидно, есть что-то, что я упускаю из виду, и мне бы хотелось, чтобы вторая пара глаз посмотрела на это. Какие-либо предложения?