Несанкционированное получение прав
Дата последнего изменения: 7 апреля 2010 г.
Применимо к: SharePoint Foundation 2010
Несанкционированное получение прав — это возможность, добавленная в Windows SharePoint Services 3.0, которая позволяет программным образом выполнять в коде действия, использующие более высокий уровень привилегий. С помощью метода SPSecurity.RunWithElevatedPrivileges можно предоставить делегат, который выполняет часть кода в контексте учетной записи с более высокими привилегиями, чем имеющиеся у текущего пользователя.
Пример типичного использования RunWithElevatedPrivileges:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// Do things by assuming the permission of the "system account".
});
Чтобы выполнить определенные действия в SharePoint, часто требуется получить новый объект SPSite, чтобы реализовать соответствующие изменения. Например:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(web.Site.ID))
{
// Do things by assuming the permission of the "system account".
}
});
Хотя несанкционированное получение прав представляет мощную технологию управления безопасностью, следует использовать ее с осторожностью. Не следует предоставлять прямые неконтролируемые механизмы людям с низкими привилегиями для обхода предоставленных им разрешений.
Важно! |
---|
Если в методе, который передается RunWithElevatedPrivileges, включены какие-либо операции записи, то перед вызовом RunWithElevatedPrivileges необходимо вызвать метод SPUtility.ValidateFormDigest() или SPWeb.ValidateFormDigest(). |