Arcgis.com पर होस्ट की गई एक फीचर सेवा का उपयोग कैसे करें जो केवल विशेष समूहों या संगठन के साथ साझा की जाती है


9

मेरे C # एप्लिकेशन में, मैं एक ऐसी फ़ीचर सेवा तक पहुँचने का प्रयास कर रहा हूँ, जो arcgis.com पर होस्ट की गई है। सुविधा सेवा केवल एक समूह या संगठन के साथ साझा की जाती है और सार्वजनिक नहीं होती है। मैं अपने ग्राहक कोड में इस सेवा का उपयोग कैसे कर सकता हूं। यहाँ मेरा क्लाइंट कोड है जो एक अपवाद कहता है कि प्रमाणीकरण टोकन आवश्यक है। मेरे पास टोकन है लेकिन न जाने कैसे उस टोकन का उपयोग करना है जो सेवा का उपयोग करने के लिए प्रमाणित किया जाना है। यह वही कोड सेवाओं के लिए ठीक चलता है जिन्हें PUBLIC के रूप में साझा किया जाता है।

   IPropertySet sipPS = new PropertySet();
    sipPS.SetProperty("DATABASE", 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 as ILayer);

क्या आप अपने एप्लिकेशन के लिए उपयोगकर्ता लॉगिन या ऐप लॉगिन सेटअप करना चाहते हैं? इसके अलावा, क्या आपका एप्लिकेशन OAuth 2-आधारित API का उपयोग करता है? चर्चा लिंक: resource.arcgis.com/en/help/arcgis-rest-api/index.html#//…
बालटोक

मैं प्रमाणीकरण के लिए OAuth 2-आधारित एपि का उपयोग नहीं कर रहा हूं। मैं केवल उपयोगकर्ता के लॉगिन क्रेडेंशियल्स में पास करके GenerateToken क्वेरी का उपयोग करके एक टोकन उत्पन्न कर रहा हूं। लॉग इन करने के बाद, मैंने Arcgis.com पर एक सेवा प्रकाशित की और एक समूह के साथ साझा किया। चूंकि सेवा को सार्वजनिक रूप से साझा नहीं किया जाता है, जब मैं स्वयं, या जिस समूह को सेवा साझा की जाती है, वह इस सेवा का उपभोग करने की कोशिश करता है, "प्रमाणीकरण टोकन आवश्यक" त्रुटि दिखाई देती है। मेरे पास टोकन है, लेकिन मुझे नहीं पता कि मैं सुरक्षित सेवा का सफलतापूर्वक उपभोग करने के लिए उस टोकन का उपयोग कैसे कर सकता हूं।
WAQ

यह किया गया है पोस्ट की गई से एक सीधा कॉपी के रूप में stackoverflow.com/questions/26429713/... लेकिन एक इनाम दोनों साइटों पर जोड़ा पड़ा है
PolyGeo

@PolyGeo मैंने दो स्थानों पर एक ही प्रश्न की प्रतिलिपि पोस्ट की क्योंकि मुझे तत्काल उत्तर की आवश्यकता है। क्या यह किसी नियम का उल्लंघन है या क्या?
WAQ

कई SO / SE साइटों पर क्रॉस-पोस्टिंग की नीति पर meta.stackexchange.com/questions/64068/… पर चर्चा की गई है, हालांकि, दोनों साइटों पर एक ही प्रश्न पर एक बाउंटी लगाकर, मेरी समझ यह है कि वे बंद नहीं हो सकते या तो साइट ( meta.stackexchange.com/questions/14591/… )। फिर भी दोनों तरफ से संभावित उत्तरदाताओं को प्रश्नोत्तर के बारे में अवगत कराने से यह तालमेल और तेजी से समाधान हो सकता है।
PolyGeo

जवाबों:


3

मैं परत के साथ टोकन को जोड़ने की कोशिश की, लेकिन कोई किस्मत नहीं थी। मैंने यह देखने के लिए कि क्या url API या नेटवर्क द्वारा उत्पन्न किए जा रहे हैं, Fiddler ऐप का उपयोग किया है, लेकिन मैं http://services1.arcgis.com/cFi1BRRsYB2fYqCl/arcgis/rest/services/NameService/FeatureServerपरत के साथ टोकन को जोड़ने के बाद भी केवल नेटवर्क पर नहीं भेजा जा रहा हूं।
WAQ

AGOL पर, मेरी सामग्री के तहत "डेस्कटॉप के लिए ArcGIS में खोलें" पर क्लिक करें और फ़ाइल item.pitem का डाउनलोड शुरू करें। इस फाइल में आप फीचर लेयर का url पा सकते हैं। Url में "token = <yourtoken> & f = json" जोड़ें और इसे एक ब्राउज़र में खोलें। बताओ क्या हो रहा है।
lele3p

मेरे पास उस लेयर का यूआरएल है जो है "http://services2.arcgis.com/js0B5yfJ0ZQG/arcgis/rest/services/TxsUltural/FeatureServerऔर मेरे पास एक टोकन भी है। चलो मान abc112asdfkljznxc123123lkjkj23klj"http://services2.arcgis.com/js0B5yfJ0ZQG/arcgis/rest/services/TxsUltural/FeatureServer?token=abc112asdfkljznxc123123lkdfkj23klj"url:"http://services2.arcgis.com/js0BC5yf1J0Z4Q5G/arcgis/rest/services/texas_cultural/FeatureServer/1?token=abc112asdfkljznxc123123lkjadfkj23klj"
लेते हैं

मैं url और टोकन का उपयोग करके ब्राउज़र में परत को देखने में सक्षम हूं। इसका सिर्फ इतना है कि Token Authentication requiredजब मैं इसे मूल प्रश्न में पोस्ट किया गया कोड में उपयोग करता हूं तो मुझे अपवाद मिल रहा है :)
WAQ

अंधेरे में कुल छुरा - प्रॉपर्टीसेट में एक अनिर्दिष्ट टॉकन संपत्ति हो सकती है?
MC5

1

कृपया नीचे दिए गए लिंक को देखें, ऐसा लगता है कि आपके पास कुछ प्रॉक्सी समस्या है। सुरक्षित सेवाओं तक पहुँचने के लिए आपको उपयोगकर्ता नाम और पासवर्ड की आवश्यकता है और बस एक कोड लिखें जहाँ टोकन रन टाइम पर उत्पन्न होता है और आपको इसे ठीक से संलग्न करने की आवश्यकता है

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


मेरे पास उपयोगकर्ता नाम, पासवर्ड है और generateTokenक्वेरी का उपयोग करके टोकन उत्पन्न किया है । बस उन सुरक्षित सेवाओं को पुनः प्राप्त करने में सक्षम नहीं हैं जिन्हें मैंने प्रकाशित किया है।
WAQ

1

जियोनेट फोरम का यह उदाहरण पोस्ट जावास्क्रिप्ट-आधारित है, लेकिन यह अनिवार्य रूप से पूरा करता है कि आप क्या करना चाहते हैं।

हालाँकि, ईएसआरआई के 'आर्कऑब्जेक्ट्स फॉर .Net' एपीआई (जो हम आपको नामस्थान के आधार पर उपयोग कर रहे हैं) के मामले के लिए आपको IArcGISSingleSignon.GetToken पद्धति को लागू करना चाहिए। इस ऑब्जेक्ट की विधि आर्कजीआईएस ऑनलाइन (एजीओएल) के लिए एक उपयोगकर्ता पर हस्ताक्षर करेगी और एक टोकन लौटाएगी। कार्यक्षेत्र कारखाना और फीचरक्लास ऑब्जेक्ट परिभाषाओं को टोकन की आवश्यकता नहीं है, लेकिन सुरक्षित एजीओएल सेवाओं तक पहुंचने से पहले साइनॉन को होना चाहिए।

अंत में, बस एक एपीआई बिंदु के रूप में, IWorkspaceFactory अप्रचलित है और IWorkspaceFactory2 अब पसंदीदा इंटरफ़ेस ऑब्जेक्ट है ।-- हस्ताक्षर परिवर्तित नहीं हुए, लेकिन बैकएंड कार्यान्वयन ने किया।

GetToken मेथड का उपयोग करके सिंगल-साइनन टोकन को लागू करने के बाद AGOL से अपने C # ऐड-इन को सही ढंग से जोड़ने के लिए कृपया पोस्ट करें।


मैंने `IArcGISSingleSignOn.GetToken 'की कोशिश की और प्रतीत होता है कि डायलॉग में साइन इन करने के लिए अपनी साख इनपुट करने के बाद उत्पन्न टोकन मिला। बाद में उसी कोड को प्रश्न के रूप में निष्पादित किया, लेकिन अभी भी एक ही अपवाद "प्रमाणीकरण टोकन आवश्यक" प्राप्त कर रहा है।
WAQ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.