Select to view content in your preferred language

How to use my ArcgisOline URL secure.

768
1
06-25-2013 08:03 AM
EricCreahi
Emerging Contributor
Hi.
I am in ArcGIS Organization.
and I have the ID feather layer and the URL feather layer .... but I don't now how to use it.

see my code behind:

ArcGISDynamicMapServiceLayer layer = new ArcGISDynamicMapServiceLayer()
                {
                    Url = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
                    ID = "CI"
                };

                layer.InitializationFailed += layer_InitializationFailed;
                //AddLayerWithCredentials(layer);
                ConfigureLayerWithToken(layer);


        private void ConfigureLayerWithToken(ArcGISDynamicMapServiceLayer layer)
        {
            string tokenurl =string.Format("https://DSI-CNTIG.maps.arcgis.com/tokens?request=getToken&username={0}&password={1}&timeout={2}",
                username, password, timeout);

            WebClient tokenService = new WebClient();
            tokenService.DownloadStringCompleted += (sender, args) =>{layer.Token = args.Result;
                string originalUrl = layer.Url;
                if (map1.Layers.Contains(layer))
                {
                    layer.Url = null;
                    layer.Url = originalUrl;
                }
                else
                    map1.Layers.Add(layer);
            };

            tokenService.DownloadStringAsync(new Uri(tokenurl));
        }



and I have some error:
L'exception System.Reflection.TargetInvocationException n'a pas été gérée par le code utilisateur
  Message=Une exception s'est produite lors de l'opération, ce qui rend le résultat non valide. Consultez InnerException pour plus de détails sur l'exception.
  StackTrace:
       à System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
       à System.Net.DownloadStringCompletedEventArgs.get_Result()
       à CHERTE_DASHBOARD.controls.dash_carte_repartition.<>c__DisplayClass5.<ConfigureLayerWithToken>b__4(Object sender, DownloadStringCompletedEventArgs args)
       à System.Net.WebClient.OnDownloadStringCompleted(DownloadStringCompletedEventArgs e)
       à System.Net.WebClient.DownloadStringOperationCompleted(Object arg)
  InnerException: System.Net.WebException
       Message=Le serveur distant a retourné une erreur : NotFound.
       StackTrace:
            à System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
            à System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
            à System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
            à System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
       InnerException: System.Net.WebException
            Message=Le serveur distant a retourné une erreur : NotFound.
            StackTrace:
                 à System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
                 à System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassa.<EndGetResponse>b__9(Object sendState)
                 à System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__0(Object sendState)
            InnerException:



Thanks for your help.
0 Kudos
1 Reply
DominiqueBroux
Esri Frequent Contributor
For generating a token you can use the IdentityManager.GenerateCredentialAsync method.

You can also set the IdentityManager to challenge the user on the fly (sample)
0 Kudos