WPF C# - Стандартный (не привилегированный) пользователь не может получить доступ к веб-клиенту?

Вот код, который я использую для проверки интернет-соединения. Но это всегда терпит неудачу. Это нормально работает с моим администратором, но не работает для обычного (не привилегированного) пользователя, которого я создал. Чего не хватает здесь..

if (!App.IsInternetConnected)
            {
                await Task.Factory.StartNew(() =>
                {
                    App.IsInternetConnected = Utils.IsInternetConnected();
                });
            }

            if (!App.IsInternetConnected)
            {
                App.ShowMessage("FeatureNotAvailable");
                LoginProgress.Visibility = System.Windows.Visibility.Hidden;
                return;
            }


 IsInternetConnected method is as below.

internal static bool IsInternetConnected()
    {
       try
        {
            WebClient webclient = new  WebClientPool().GetIdleWebClientObject();

            try
            {
            webclient.DownloadString("http://www.google.com");
            return true;
        }

    }
    catch (Exception)
    {
            return false;
    }
  }

GetIdleWebClientObject выглядит следующим образом.

 [MethodImpl(MethodImplOptions.Synchronized)]
        public WebClient GetIdleWebClientObject()
        {
            foreach (WebClient item in WebClientItems)
            {
                if (!item.IsBusy )
                {
                    Log.Instance.WriteLine("reused webclient");
                    item.Headers.Clear();
                    return item;
                }
            }
            Log.Instance.WriteLine("new webclient");
            WebClient NewItem = new WebClient();
            NewItem.UseDefaultCredentials = true;
            //NewItem.Credentials = CredentialCache.DefaultNetworkCredentials;

            NewItem.Proxy = WebRequest.GetSystemWebProxy();
            WebClientItems.Add(NewItem);
            return NewItem;
        }

1 ответ

Решение

Моя проблема была немного в стороне, но может помочь любому. Это было в соответствии с этим Log.Instance.WriteLine("new webclient"); Эта строка создавала и записывала файл журнала в C:\ привод. Который не был допущен обычным пользователем и выкидывал исключение. что привело меня к отсутствию интернет-ошибки, которая на самом деле не была связана.

Другие вопросы по тегам