#javascript #sharepoint #elevated-privileges
#javascript #sharepoint #повышенные привилегии
Вопрос:
В SharePoint, когда мне нужно выполнить действие, когда у пользователя нет на это прав, я использую:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// DO SOMETHING WITH PRIVILEGES
});
Но теперь мне нужно выполнить JavaScript с повышенными привилегиями:
var context = new SP.ClientContext.get_current();
context.executeQueryAsync(); // NEED PRIVILEGES TO WORK
Возможно ли это?
Ответ №1:
Нет, это невозможно.
Пользователь сможет манипулировать JavaScript, что приведет к огромному пробелу в безопасности. Вы просто можете сделать это на стороне сервера. Если вам нужно что-то подобное, все это должно выполняться на сервере.
Комментарии:
1. Согласен, в этом заключается вся концепция, лежащая в основе изолированных сред. Вы не можете повысить уровень разрешений, поэтому повышение уровня разрешений должно рассматриваться в качестве крайней меры в качестве наилучшей практики.
Ответ №2:
Согласен, что вы не можете сделать это с помощью JavaScript, и было бы глупо, если бы вы могли. Один из сценариев, который может вам помочь, — изучить рабочие процессы дизайнера без кода. Новым в SP2010 является возможность выполнения фрагментов рабочего процесса от имени пользователя, разработавшего рабочий процесс, а не от имени пользователя, запустившего экземпляр рабочего процесса. Это может быть использовано для решения вашей проблемы с разрешениями.