ArcGIS Runtime SDK for Android端如何加载基于Token认证的安全服务?

ArcGIS Runtime SDK for Android端如何加载基于Token认证的安全服务?
已邀请:

张赛

赞同来自: 中华田园饭

【解决办法】:
基于Token认证的安全服务的加载要求token信息包含在每个请求中。
在ArcGIS Runtime SDK for Android中,这类安全服务的加载方式有两种:
1 若知道访问服务所需的用户名和密码,如zssai0/zssai0
UserCredentials creds = new UserCredentials();
creds.setUserAccount(zssai0, zssai0 );
//若采用默认的token服务,则可忽略。这里显式地引用了192.168.220.116上的ArcGIS Server自带的token服务
creds.setTokenServiceUrl(http://192.168.220.118:6080/arcgis/tokens);
ArcGISDynamicMapServiceLayer dynamicLayer = new ArcGISDynamicMapServiceLayer(
    http://192.168.220.118:6080/ar ... erver,null,creds);




2 若知道访问服务所需的token
2.1 获取token,如下图所示



 
注:Android端的token建议唯一识别您的应用程序,可通过在ArcGIS Developer网站上注册应用程序的方式获取应用程序的唯一ID,或采用其他唯一构建的方式。ArcGIS Runtime SDK for Android端对referer的要求不是很严格。我这里采用的比较简单,仅供测试用,如ArcGIS+Android+Client+HelloWorld。
UserCredentials creds = new UserCredentials();
creds.setAuthenticationType(AuthenticationType.TOKEN);
creds.setUserToken(ggKI0tcDIbBGJTrR6W9ETW0qjTJ6eoJ69XcMEW464ymwcK7hFwUbUr4tvieA93id_61Eis8vFu0vDHF9716B1A..,ArcGIS+Android+Client+HelloWorld);
creds.setTokenServiceUrl(http://192.168.220.118:6080/arcgis/tokens/);
ArcGISDynamicMapServiceLayer dynamicLayer = new ArcGISDynamicMapServiceLayer(
http://192.168.220.118:6080/ar ... erver, null, creds);


要回复问题请先登录注册