Я только что проверил это в 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 ");
Обратите внимание на конечный пробел?И с этим кодом возвращается реальное число, хранящееся в таблице.Смотри, у кого-то есть ошибка.