Mehr

So greifen Sie auf einen auf arcgis.com gehosteten Feature-Service zu, der nur mit bestimmten Gruppen oder Organisationen geteilt wird


In meiner C#-Anwendung versuche ich, auf einen Feature-Service zuzugreifen, der auf arcgis.com gehostet wird. Der Feature-Service wird nur mit einer Gruppe oder Organisation geteilt und ist NICHT öffentlich. Wie kann ich in meinem Kundencode auf diesen Service zugreifen. Hier ist mein Client-Code, der eine Ausnahme auslöst, die besagt, dass das Authentifizierungstoken erforderlich ist. Ich habe das Token, weiß aber nicht, wie man dieses Token verwendet, um sich für die Nutzung des Dienstes zu authentifizieren. Derselbe Code funktioniert einwandfrei für Dienste, die als PUBLIC freigegeben sind.

IPropertySet sipPS = new PropertySet(); sipPS.SetProperty("DATENBANK", layerUrl); IWorkspaceFactory sipWSF = (IWorkspaceFactory)new ESRI.ArcGIS.Carto.FeatureServiceWorkspaceFactory(); IWorkspace sipWS = sipWSF.Open(sipPS, 0); IFeatureWorkspace sipFWS = (IFeatureWorkspace)sipWS; IGroupLayer grpLayer = new GroupLayerClass(); grpLayer.Name = Constants.ArcGISOnlineGroupLayerName; IFeatureClass sipFC = sipFWS.OpenFeatureClass("0"); IFeatureLayer fl = new FeatureLayerClass(); fl.Name = featureLayerName; fl.FeatureClass = sipFC; grpLayer.Add(fl als ILayer);

Ihre LayerUrl ist ähnlich unter: http://services1.arcgis.com/cFi1BRRsYB2fYqCl/arcgis/rest/services/NameService/FeatureServer

Fügen Sie einfach das Token zu URL: http://services1.arcgis.com/cFi1BRRsYB2fYqCl/arcgis/rest/services/NameService/FeatureServer?token=gGIYjUwXvaO75l1X7LHsgOo2Yueoh1jTGRvrKm7K9ZBE-0TY-EA_Ml7vJtllQK9P2nngX5ciedKgHkjLOEgRSKYR8QhDJMDpWQ09PhTWubNACuFsNIQ3fdlbS6tsPO0h


Bitte beziehen Sie sich auf den folgenden Link, es scheint, dass Sie ein Proxy-Problem haben. Um auf einen gesicherten Dienst zuzugreifen, müssen Sie einen Benutzernamen und ein Passwort haben und einfach einen Code schreiben, in dem das Token zur Laufzeit generiert wird und Sie es nur richtig anhängen müssen

http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#//0048000000sv000000


Dieser Beispielbeitrag aus dem GeoNet-Forum basiert auf Javascript, erreicht aber im Wesentlichen das, was Sie erreichen möchten.

Im Fall der 'ArcObjects for .Net'-API von ESRI (die wir anhand der Namespaces verwenden können) sollten Sie jedoch die IArcGISSingleSignon.GetToken-Methode implementieren. Die Methode dieses Objekts meldet einen Benutzer bei ArcGIS Online (AGOL) an und gibt ein Token zurück. Für die Workspace-Factory und die Feature-Class-Objektdefinitionen ist das Token nicht erforderlich, aber die Anmeldung muss vor dem Zugriff auf gesicherte AGOL-Feature-Services erfolgen.

Schließlich ist IWorkspaceFactory nur als API-Punkt veraltet und IWorkspaceFactory2 ist jetzt das bevorzugte Schnittstellenobjekt. Die Signaturen haben sich nicht geändert, die Backend-Implementierungen jedoch.

Bitte posten Sie, um zu bestätigen, dass Ihr C#-Add-In ordnungsgemäß eine Verbindung mit AGOL herstellt, sobald Sie Token für die Einzelanmeldung mithilfe der GetToken-Methode implementieren.


Schau das Video: Create Feature Service for ArcGIS Online in ArcMap (Oktober 2021).