Это индексированное свойство, да или нет?

Я пытаюсь получить текущий ключ машины, который используется для шифрования/дешифрования моего 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

Очевидно, есть что-то, что я упускаю из виду, и мне бы хотелось, чтобы вторая пара глаз посмотрела на это. Какие-либо предложения?


person StevieG    schedule 23.06.2011    source источник


Ответы (1)


Вы передаете typeof(MachineKeySection), когда вы должны передавать экземпляр MachineKeySection.

Type machineKeySection = typeof(MachineKeySection);
Object validationKey = machineKey.GetValue(machineKeySection, null);

Должно быть что-то вроде (взято из здесь):

MachineKeySection machineKeySection = (MachineKeySection)config.GetSection("system.web/machineKey");
Object validationKey = machineKey.GetValue(machineKeySection, null);

Итак, чтобы ответить на ваш вопрос, нет, это не индексированное свойство. Вы можете проверить документацию здесь.

person CodeNaked    schedule 23.06.2011