一、地图服务访问权限设置。
当我们发布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值的获取(代码实现)
实现代码:
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.
参考:
原文链接:https://blog.csdn.net/weixin_44011559/article/details/109463883