Я только что проверил это в DotNetNuke 5.6.1. На самом деле настройка обновляется в базе (проверить с помощью:
SELECT [SettingName]
,[SettingValue]
,[SettingIsSecure]
,[CreatedByUserID]
,[CreatedOnDate]
,[LastModifiedByUserID]
,[LastModifiedOnDate]
FROM [DNN56].[dbo].[DNN_HostSettings]
where
[SettingName] = 'PasswordExpiryReminder'
), но на самом деле веб-интерфейс пользователя всегда отображает «7», несмотря на значение, хранящееся в базе данных.
Отредактировано:
Я провел еще несколько тестов и понял, что чтение значения свойства PasswordExpiryReminder из PasswordConfig всегда возвращает 7!
int i = DotNetNuke.Security.Membership.PasswordConfig.PasswordExpiryReminder;
Поэтому я превратил его в
int i = DotNetNuke.Entities.Controllers.HostController.Instance.GetInteger("PasswordExpiryReminder");
и на этот раз он вернул -1 (потому что я не использую перегрузку, предоставляющую значение по умолчанию).
Тогда у меня была вспышка, я обратился к SSMS и скопировал значение столбца SettingName и вставил его в Visual Studio.
int i = DotNetNuke.Entities.Controllers.HostController.Instance.GetInteger("PasswordExpiryReminder ");
Заметили пробел в конце? И с этим кодом возвращается реальное число, хранящееся в таблице. Смотри, у кого-то ошибка.
person
Jorge Teixeira
schedule
13.01.2012