当我们发布的arcgis server服务设置为公开或者发布到外网时,这样所有人都可以访问,如果我们只想对部分人进行开放并且限定时间的使用,而不希望其他人员访问我们的服务。那就需要对该服务设置权限对服务的请求进行验证,这样服务就无法被所有人访问,将服务设置为私有,给使用者创建用户和分配角色并生成token,相当于先进行验证,验证成功再响应服务请求。
首先通过ajax请求去获取Token
获取到Token之后,如果项目使用的是arcgis 4.x版本,可以直接用它自带的"esri/identity/IdentityManager"类做token验证,验证后即可正常调用服务
如果是用的arcgis 3.x版本,虽然没有这个类,但验证的方法也很简单,只需要在调用的服务URL后面拼接上 "?token=xxxxxx"即可
var url='http://0.0.0.0/OneMapServer/rest/services/govmap_as_2017/MapServer?token=' + token;
var tiledlayer = new esri.layers.ArcGISTiledMapServiceLayer(url, {
"opacity": alpha,
"id":label,
"visible":visible === "true"
});
map.addLayer(tiledlayer);