Обновление свойств WebPart с помощью RunWithElevatedPrivileges в MOSS 2007 - PullRequest
0 голосов
/ 20 мая 2009

Как часть решения MOSS 2007, у меня есть веб-часть, которая отображает «термин» дня. Термины хранятся в ужасно запутанном XML-файле, поэтому все они хорошо анализируются, а затем предполагается обновить свойство с именем LastUpdatedOn до текущего времени.

Моя проблема заключается в том, что учетные записи уровня администратора могут видеть это без каких-либо проблем, но пользователи получают сообщение об ошибке, заявляющее, что у них недостаточно прав для сохранения свойств веб-части.

Я запускаю код в делегате с повышенными правами и создаю новый контекст, чтобы обойти тот факт, что контекст все еще считает, что текущий пользователь не является системной учетной записью.

Pastebin полного кода можно найти здесь

Проблемные строки:

SaveProperties = true;
LastUpdatedOn = DateTime.Now.ToString();

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

1 Ответ

2 голосов
/ 20 мая 2009

Почему бы не основать свое семя на сегодняшней дате и пропустить сохранение значения?

Пример:

Random r = new Random(DateTime.Now.DayOfYear + 365 * DateTime.Now.Year);
r.Next(count);

Это даст вам новое случайное значение каждый день.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...