web api 模拟用户
转:https://blog.csdn.net/vic0228/article/details/80649615
var req = new XMLHttpRequest(); req.open("get",Xrm.Page.context.getClientUrl() + "/api/data/v8.2/accounts(3E6DB783-B65C-E811-80DC-0017FA01322A)?$select=name", false); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.setRequestHeader("Prefer", "odata.include-annotations="OData.Community.Display.V1.FormattedValue""); req.setRequestHeader("MSCRMCallerID", "FCCBB09D-D559-E811-80D4-0017FA01322A"); req.send(); if (req.status == 200) var data= JSON.parse(req.responseText); else throw new Error(JSON.parse(req.responseText).error.message);
如果不加MSCRMCallerID这个头部,则请求数据时会报错,提示当前用户并没有读取该条数据的权限
当我们加上了MSCRMCallerID这个头部后再运行,发现页面会很奇怪的弹个登录框出来,如果你点了取消则会看到下述弹框,说你没有模拟其他用户进行操作的权限。
只要给安全角色加上下图中的权限即可,这样你就可以模拟其他用户进行一些数据操作了。
C# 模拟用户没有感觉没有成功
OrganizationServiceProxy proxy = new OrganizationServiceProxy(orgServiceUri, null, clientCredentials, null);
proxy.CallerId=xxxx.xxxx.xxxx.xxxx