ArcGIS Server 地图服务访问权限设置及ArcGIS Server token获取


本文转自 :https://blog.csdn.net/weixin_44011559/article/details/109463883 请支持原创!

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

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

新建用户。
pic_104817f0.png
新建成功。
pic_4b52af78.png
角色与用户之间关系:角色是指一组按功能、标题或某些其他属性关联在一起的用户。

回到服务
点击某一个服务,“锁”。
pic_ebe8e640.png

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

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

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

http://localhost:6080/arcgis/rest/services/SampleWorldCities/MapServer
pic_d9b632db.png

点击右上角Get Token
pic_771a24ce.png
可以看到 有三种获取方式。
pic_c2585952.png
打开Help文档。(页面上的Help超链接)
pic_31b750f7.png
翻译一下:
pic_e20aefce.png

HTTP Referer方式:需要输入访问地图服务页面的URL。
pic_a35c25e4.png
得到:
pic_d8003710.png

IP方式:需要输入访问服务的主机ip地址(任意访问地图服务主机的ip地址,可以不是自己主机的ip)。
pic_80c1d824.png
得到:
pic_4c9356df.png
Request IP方式(默认的):
pic_5c0b573c.png
得到:
pic_f2132244.png

三、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值。
pic_d3a9ee55.png
token值:
dgC4wjgpi8ZWEzIBdi4ZYeeMlqhZDZa5ZaxFh6uK48g.

四、通过token访问地图服务

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

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

pic_00de9a09.png


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM