2010-12-13 3 views
2

В основном приложение, над которым я работаю, содержит множество параметров, все из которых управляются из файла конфигурации xml, который содержит конфигурации для каждой машины, на которой выполняется аппликация (live и dev). У меня есть проблема: я хочу иметь возможность управлять полем проверки подлинности на основе форм, поэтому в файле конфигурации я могу указать этот флаг.Аутентификация форм requiressl

Это должно привести к тому, что флажок requiressl будет истинным в живой среде, а там, обеспечив ssl и создав защищенный файл cookie. Для среды dev я не хочу использовать ssl для всех машин dev.

Я не хочу манипулировать файлом web.config, чтобы сделать это. Я хотел бы, чтобы мой код приложения читался в xml-конфигурации и соответствующим образом их устанавливал.

Я попытался использовать отражатель, чтобы перейти в закрытый класс проверки подлинности формы и обнаружил, что свойство requiressl имеет только метод get, не заданный метод.

Я также попытался реализовать класс конфигурации formauthenticationconfiguration, но безрезультатно. - Я не уверен, что делаю это правильно.

Любая помощь в поиске возможного решения этой проблемы будет принята с благодарностью.

С наилучшими пожеланиями,

Gurpreet

Попытка 1:

Впоследствии я попытался это:

PropertyInfo field = typeof (FormsAuthentication).GetProperty("RequireSSL"); 
field.SetValue(typeof(FormsAuthentication), true, null) 

Я получаю сообщение об ошибке, говорящее «Свойство набор метод не найдено "

Попытка 2: решаемые

TypeOf (FormsAuthentication) .GetField ("_ RequireSSL", BindingFlags.Static | BindingFlags.NonPublic) .SetValue (typeof (FormsAuthentication), Config.Secure);

+0

Каковы ваши причины не желая изменить файл web.config? Одной из основных целей этого файла является настройка его для определенных сред, что в точности похоже на то, что вы пытаетесь сделать. –

ответ

1

Хотя не рекомендуется, вы можете использовать отражение, чтобы изменить личное поле (хранилище резервных копий для свойства).

Попробуйте here

Смежные вопросы