arcgis server地图服务访问权限设置及arcgis server token获取。

一、地图服务访问权限设置。

当我们发布arcgis地图服务后,由于涉密或者其他原因,不想让所有人看到地图服务。这时候我们可以对地图设置权限。怎末设置那?
进入你们arcgis管理。地址:
http://localhost:6080/arcgis/manager/index.html#
在这里插入图片描述
新建角色。
在这里插入图片描述

新建用户。
在这里插入图片描述
新建成功。
在这里插入图片描述
角色与用户之间关系:角色是指一组按功能、标题或某些其他属性关联在一起的用户。

回到服务
点击某一个服务,“锁”。
在这里插入图片描述

在可见角色里面搜索刚刚新建的角色名字。不搜索,那个用户添加按钮不出来。添加角色abc。
然后选择保存。
在这里插入图片描述
权限编辑完成。

当你进入站点
http://localhost:6080/arcgis/rest/services
发现刚刚设置权限的那个地图地图服务SampleWorldCities不见了。说明设置成功了。
在这里插入图片描述
当你进入SampleWorldCities服务,发现需要登陆。
http://localhost:6080/arcgis/rest/services/SampleWorldCities/MapServer
在这里插入图片描述
你输入刚刚创建的用户名abc及密码,就可以进入服务了。
在这里插入图片描述
登陆进来。
在这里插入图片描述

二、arcgis server 登陆token值的获取。(手动实现)

http://localhost:6080/arcgis/rest/services/SampleWorldCities/MapServer
在这里插入图片描述

点击右上角Get Token
在这里插入图片描述
可以看到 有三种获取方式。
在这里插入图片描述
打开Help文档。(页面上的Help超链接)
在这里插入图片描述
翻译一下:
在这里插入图片描述

HTTP Referer方式:需要输入访问地图服务页面的URL。
在这里插入图片描述
得到:
在这里插入图片描述

IP方式:需要输入访问服务的主机ip地址(任意访问地图服务主机的ip地址,可以不是自己主机的ip)。
在这里插入图片描述
得到:
在这里插入图片描述
Request IP方式(默认的):
在这里插入图片描述
得到:
在这里插入图片描述

三、arcgis server 登陆token值的获取。(代码实现,c#实现)

实现代码:

public string GetTokenTest()
        {
            string option = "HTTP Referer";
            string tokenservice = null;
            switch (option)
            {
                case "HTTP Referer":
                    tokenservice = "http://localhost:6080/arcgis/tokens?request=getToken&username=abc&password=aaaa&http referer=http://192.168.1.166&expiration=60";
                    break;
                case "IP":
                    tokenservice = "http://localhost:6080/arcgis/tokens?request=getToken&username=abc&password=aaaa&ip=192.168.1.166&expiration=60";
                    break;
                case "Request lP":
                    tokenservice = "http://localhost:6080/arcgis/tokens?request=getToken&username=abc&password=aaaa&expiration=60";
                    break;
            }
            WebRequest request = WebRequest.Create(tokenservice);
            WebResponse respost = request.GetResponse();
            Stream resposeStream = respost.GetResponseStream();
            StreamReader readStream = new StreamReader(resposeStream);
            string tokenstr = readStream.ReadToEnd();
            //ResultMsg m = new ResultMsg();
            //return new JavaScriptSerializer().Serialize(m);
            return tokenstr;
        }

运行结果:
HTTP Referer方式,代码获取的token值。
在这里插入图片描述
token值:
dgC4wjgpi8ZWEzIBdi4ZYeeMlqhZDZa5ZaxFh6uK48g.

四、通过token访问地图服务

怎末通过token访问设置访问权限的地图?(不登陆)
方法:
http://localhost:6080/arcgis/rest/services/服务名/MapServer?token=token值

通过上面代码获取的token值,
http://localhost:6080/arcgis/rest/services/SampleWorldCities/MapServer?token=dgC4wjgpi8ZWEzIBdi4ZYeeMlqhZDZa5ZaxFh6uK48g.

在这里插入图片描述

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
获取 ArcGIS Server Token 可以通过调用 ArcGIS REST API 实现,具体步骤如下: 1. 构造请求 URL ``` http://<arcgis-server>/arcgis/tokens/generateToken ``` 其中 `<arcgis-server>` 是 ArcGIS Server 的主机名或者 IP 地址。可以根据需要添加端口号和上下文路径。 2. 添加请求参数 Token API 需要添加以下请求参数: - `username`: ArcGIS Server 用户名 - `password`: ArcGIS Server 密码 - `client`: 客户端类型,可以是 `requestip`、`referer` 或者 `ip` - `expiration`: Token 的过期时间,单位是分钟,默认为 60 分钟 - `f`: 返回结果的格式,可以是 `json` 或者 `xml` 示例请求 URL: ``` http://<arcgis-server>/arcgis/tokens/generateToken?username=myusername&password=mypassword&client=requestip&expiration=120&f=json ``` 3. 发送请求并解析结果 可以使用 Java 的 HTTP 客户端库,如 Apache HttpClient 或者 HttpURLConnection 发送请求,并解析返回结果。在返回结果中,可以获取 `token` 字段的值,即为生成的 ArcGIS Server Token。 示例代码: ``` String url = "http://<arcgis-server>/arcgis/tokens/generateToken?username=myusername&password=mypassword&client=requestip&expiration=120&f=json"; HttpClient httpClient = HttpClientBuilder.create().build(); HttpGet httpGet = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); String response = EntityUtils.toString(httpResponse.getEntity()); JSONObject json = new JSONObject(response); String token = json.getString("token"); ``` 以上代码仅供参考,具体实现需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值