Если у вас есть клиентская JavaScript, выполняющая вызовы REST, она всегда будет выполняться в контексте текущего пользователя, что означает, что вы не можете делать в вызове REST ничего, что текущий пользователь не имеет разрешения делать самому.
Если вы используете локальную установку SharePoint Server, которая использует встроенную безопасность NTLM (то есть пользователи Active Directory обычно автоматически входят в SharePoint без ввода своих учетных данных), то когда ваш код пытается выполнить клиент Сторонний вызов REST, который пытается выполнить действие, на которое текущий пользователь не авторизован, браузер автоматически запросит у них учетные данные AD для учетной записи пользователя, имеющей доступ.
Если вы используете онлайн-среду или один без встроенной защиты, и вместо того, чтобы повторно запрашивать у пользователей учетные данные, ваш код просто получит 401 Несанкционированный.
Если ваша ферма SharePoint использует интегрированную защиту с вашим локальным доменом, нет никакого способа напрямую запретить пользователю запрашивать учетные данные при попытке доступа к ресурсу, к которому у него нет доступа. Вместо этого вам нужно будет использовать REST API, чтобы увидеть, есть ли у текущего пользователя разрешение на выполнение действия, и отобразить более дружественную ошибку, если они этого не делают.
Ниже приведен пример, заимствованный из предыдущее сообщение о стеке о проверке прав пользователя:
function checkPermissions() {
var call = jQuery.ajax({
url: _spPageContextInfo.webAbsoluteUrl +
"/_api/Web/effectiveBasePermissions",
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
call.done(function (data, textStatus, jqXHR) {
var manageListsPerms = new SP.BasePermissions();
manageListsPerms.initPropertiesFromJson(data.d.EffectiveBasePermissions);
var manageLists = manageListsPerms.has(SP.PermissionKind.manageLists);
var message = jQuery("#message");
message.text("Manage Lists: " + manageLists);
});
}