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