ArcGIS Server权限是赋予给角色对资源的访问能力,权限设置可以对ArcGIS Server服务,也可以对服务文件夹进行设置。如果对文件夹设置权限,则文件夹中的服务自动继承权限;如果是对文件夹中的服务设置权限,则将覆盖从文件夹中继承的权限。
ArcGIS Server Rest服务针对应用程序来说,是基于角色来授权(不能直接给用户授权)。而用户访问该Rest服务时,只需要提供用户名和密码,ArcGIS Server将找到其对应的角色,验证该角色是否对服务资源具备访问权限。
<a href="http://s3.51cto.com/wyfs02/M01/12/C3/wKiom1MN2Yjxq6twAAIFmSbrMlY456.jpg" target="_blank"></a>
2 创建用户
创建两个用户user1和user2,给user1添加角色XJA和XJC,给用户user2添加角色XJB,如下所示:
<a href="http://s3.51cto.com/wyfs02/M01/12/C3/wKioL1MN2eyAhM6FAAEhriuEFz4281.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/12/C3/wKiom1MN2iCAvfnmAAGgHZTS8b4753.jpg" target="_blank"></a>
3 为角色授予访问权限
给服务JueSe授权角色XJA和XJO才可以访问。
<a href="http://s3.51cto.com/wyfs02/M01/12/C3/wKioL1MN21jD0_KGAADmSlj0ztA813.jpg" target="_blank"></a>
4 验证
方法一: 在http://IP:6080/arcgis/rest/login页面查看
匿名用户登录,看不到服务JueSe,以用户user1登录,可以看到JueSe服务,以用户user2登录,看不到JueSe服务。
方法二:采用令牌环
用户名:访问该资源的授权用户的名字。
密码:用户的密码。
客户端:使用token的客户端,提供三种类型:HTTP Referer、IP、Requeste IP,区别如下:
HTTP Referer:选择此(默认)选项后,只能在指定 URL 涉及的请求中使用发布的令牌。这是发出访问 ArcGIS 资源请求的页面的 URL。如果通过 ArcGIS API for JavaScript 或基于 REST 的其他应用程序来构建应用程序(各客户端在此应用程序中发出通过 ArcGIS Server Web 服务直接访问地图和数据的请求),可使用此方法。
IP:选择此选项后,只能在来自指定 IP 地址的请求中使用发布的令牌。
Request IP:选择此选项后,只能在来自用于获取令牌的 IP 地址的请求中使用发布的令牌。
注:如果在客户端应用程序\浏览器和 ArcGIS Server 之间有代理服务器,则必须将使用 IP 地址或此请求源的 IP 地址选项生成的令牌绑定到代理服务器的 IP 地址。如果在客户端应用程序\浏览器和 ArcGIS Server 之间有多个负载平衡代理服务器,则应使用 HTTP Referer 选项。
HTTP referer:如果Client选择了HTTP referer,这里就需要输入应用地址。
有效期:自令牌发布时间起的持续时间,令牌在此持续时间内有效。
注:指定的有效期必须小于或等于为长期令牌生命期配置的值。要在管理器中查看当前令牌属性,请单击安全性 > 设置,然后单击令牌设置旁的编辑图标。
格式:此参数指定服务器对此令牌请求所作响应的格式。
HTML:此选项以字符串格式显示服务器发布的令牌。要使用令牌,请复制字符串并将其附加到对受保护的 ArcGIS Server Web 服务的请求中。
JSON:此选项返回 JSON 格式的令牌。当通过 Web 应用程序而不是 Web 浏览器请求令牌时,使用该选项。
<code><!DOCTYPE html></code>
<code><html></code>
<code><head></code>
<code> </code><code><meta http-equiv=</code><code>"Content-Type"</code> <code>content=</code><code>"text/html; charset=utf-8"</code><code>></code>
<code> </code><code><title>我的第一个地图应用</title></code>
<code> </code><code><link href=</code><code>"http://localhost/arcgis_js_api/library/3.8/js/esri/css/esri.css"</code> <code>rel=</code><code>"stylesheet"</code> <code>type=</code><code>"text/css"</code><code>></code>
<code> </code><code><script src=</code><code>"http://localhost/arcgis_js_api/library/3.8/"</code><code>></script></code>
<code> </code><code><script type=</code><code>"text/javascript"</code> <code>src=</code><code>"jsapi_vsdoc10_v38.js"</code><code>></script></code>
<code> </code><code><style type=</code><code>"text/css"</code><code>></code>
<code> </code><code>html, body, .MapClass{</code>
<code> </code><code>padding: </code><code>0</code><code>;</code>
<code> </code><code>margin: </code><code>0</code><code>;</code>
<code> </code><code>height: </code><code>100</code><code>%;</code>
<code> </code><code>}</code>
<code> </code><code></style></code>
<code> </code><code><script type=</code><code>"text/javascript"</code><code>></code>
<code> </code><code>dojo.require(</code><code>"esri.map"</code><code>);</code>
<code> </code><code>//dojo.require("esri.layers.ArcGISTiledMapServiceLayer");</code>
<code> </code><code>function</code> <code>init() {</code>
<code> </code><code>var</code> <code>MyMap=</code><code>new</code> <code>esri.Map(</code><code>"MapDiv"</code><code>);</code>
<code> </code><code>var</code> <code>MyTiledMapServerLayer=</code><code>new</code> <code>esri.layers.ArcGISDynamicMapServiceLayer(</code><code>"http://IP:6080/arcgis/rest/services/xjuMobile/gsmTS/MapServer?token=tyWeXGA1oFQ-I49ZEQ8qzKNZ7EpPByFI0Fh6-rvXJMnEj1Hwp_cKANFRTlTfTVSR"</code><code>);</code>
<code> </code><code>MyMap.addLayer(MyTiledMapServerLayer);</code>
<code> </code><code>}</code>
<code> </code><code>dojo.addOnLoad(init);</code>
<code> </code><code></script></code>
<code></head></code>
<code><body></code>
<code> </code><code><div id=</code><code>"MapDiv"</code> <code>class</code><code>=</code><code>"MapClass"</code><code>></div></code>
<code></body></code>
<code></html></code>
参考文档:http://resources.arcgis.com/zh-CN/help/main/10.2/#/na/0154000005rp000000/
本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1363946,如需转载请自行联系原作者