1

在以“用户 A”身份登录且不退出“用户 A”会话的情况下,如何使用“用户 B”执行以下查询?

     var settings = {
    "async": true,
    "crossDomain": true,
    "url": "www.url.com",
    "method": "GET",
    "headers": {
    "authorization": "Basic [BASE64]",
    "cache-control": "no-cache",
        }

在使用用户 A 登录时,我执行此查询并立即使用用户 B 登录,并且我的会话被用户 B 覆盖。我在使用 Chrome 扩展程序时尝试这样做。

“用户 B”帐户是具有执行“用户 A”没有的 API 调用权限的通用帐户。

4

1 回答 1

0

这只有在(用户 A 具有管理员角色)或(用户 A 具有模仿者角色 && 用户 B 不是管理员)时才有可能

1)如果用户A具有管理员角色,那么只要允许目标表访问,他们就可以直接触发任何REST查询。

2) 如果用户 A 具有模拟角色,那么您可以模拟除管理员用户之外的任何用户会话。以下脚本行可用于在用户 A 的会话中模拟用户 B,然后作为用户 B 触发所需的 API

var originalUserID = gs.getUserID();

//Replace SYS_ID_USER_B with the sys_id of user B from the profile
gs.getSession().impersonate('SYS_ID_USER_B'); 

//Trigger REST API as USER B -- START


//Trigger REST API as USER B -- END

//Impersonate back to the original user
gs.getSession().impersonate(originalUserID);  

于 2019-01-13T16:40:06.070 回答