Повышенные привилегии в javascript

#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 является возможность выполнения фрагментов рабочего процесса от имени пользователя, разработавшего рабочий процесс, а не от имени пользователя, запустившего экземпляр рабочего процесса. Это может быть использовано для решения вашей проблемы с разрешениями.