安全的服务

有两种方法保障ArcGISServer网络服务的安全性:

l  基于令牌的认证

l  HTTP(包括windows)的认证。

ArcGIS Server的系统管理员提供了连接安全服务的认证信息。注意,Silverlight程序的源码及其与远程服务器的消息传递,在客户端是能被看到的。这意味着客户端可以通过源代码或请求内容看到认证与令牌信息。

基于令牌的认证

基于令牌加密的服务需要在对地图、查询、地址匹配、地理处理等的请求中包含令牌。令牌是基于认证用户、数据、时间、请求客户端等产生的加密字符串。

要调用要求令牌的服务,需要在程序中获取并使用令牌。令牌可以在程序发布前生成或在运行时实时生成。你可以以下三种方式调用令牌加密的服务:

1.    在调用令牌加密服务的Silverlight组件中创建并使用令牌,这要求在程序涉及阶段完成。

2.    在运行时,根据用户提供的认证信息为他们生成令牌。浏览器提供一个标准的认证对话框供用户输入用户名与密码,所有对该令牌加密服务的交互均基于HTTPS。

3.    在服务图层定义ProxyURL,使用代理页面获取加密服务。代理页面参考:http://help.arcgis.com/en/webapi/silverlight/help/0166/other/SLProxyPage.zip

获取令牌

可以通过令牌服务网页或动态创建令牌。若通过参考页或IP地址能获知客户端ID,则可以通过令牌服务网页创建长期的令牌。动态创建令牌,在运行时产生短期令牌。

通过令牌服务网页创建动态令牌的过程如下:

1.    获取服务的URL;

2.    打开URL;

3.    在页面右上角点击Get Token。若没有看到该连接,则说明该服务不是加密的或它使用HTTP/Windows认证;

4.    这时可以看到ArcGIS认证服务页面。注意,这里使用HTTPS。在该页面输入以下信息:

a)    ArcGIS服务器系统管理员提供的用户名与密码。

b)    使用该令牌的应用程序的唯一ID。有两个选项:Web application URL/HTTP Referer or IP address,这时参考页头部不能通过Silverlight设置。若需要创建长期令牌,则使用带代理页面的IP选项。

c)    失效时间。定义令牌的有效期。短期的会相对安全,但需要在老令牌过期前定义新令牌。使用过期的令牌将无法访问ArcGIS服务器的服务。

5.    点击Generate,这时在页面底部出现一个令牌,复制并应用到你的应用程序中。若令牌出现,请检查输入是否正确。

要动态创建令牌,通常需要先构建一个web请求。以下是使用C#与.NET Framework的例子:

string tokenService = "http://hostname/ArcGIS/tokens?request=getToken&username=test&password=my.password&expiration=30";

                          

System.Net.WebRequest request = System.Net.WebRequest.Create(tokenService);                            

System.Net.WebResponse response = request.GetResponse();                            

System.IO.Stream responseStream = response.GetResponseStream();                             

System.IO.StreamReader readStream = new System.IO.StreamReader(responseStream);                            

theToken = readStream.ReadToEnd();

                              说明:

如果在Silverlight中创建令牌,则即使使用HTTPS,用户名与密码都将在客户端可见。通常在服务端资源中存储认证(如代理页面),通过服务端资源直接向令牌加密服务发送请求。

在应用程序中使用令牌

在获得有效令牌之后,通过以下两种方式在应用程序中使用令牌:

1.    设置图层或任务的token属性。在设计阶段设置token属性,首现需要通过借助令牌服务网页等方式手动生成令牌。仅适用于短期令牌。

<esri:ArcGISTiledMapServiceLayer

  Token="cggEFLivAeuzeEzxqYbt3XVXwJHtBINpCLQdq4YaxmOghNgsnB6iLWjlHsd7xomB"

  Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/>

2.    使用代理页面。这种方式提供对令牌更高级别的保护。

HTTP/Windows认证

两种途径:

1.    要求用户提供授权认证。

2.    使用代理页面。

说明:没太看懂。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值