GetRequestStream -> 403 запрещено, если не войти в систему как администратор - PullRequest
0 голосов
/ 10 марта 2020

Вот раздел кода, который я использую для отправки запросов http / https на устройство. Это работает нормально, если я запускаю это с правами администратора, но я получаю ошибку 403 на GetRequestStream с более низкими учетными записями. Даже учетная запись службы локальной системы не работает. Спасибо за вашу помощь

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Headers.Add("Authorization", "Basic " + credentials);
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0";
            request.Method = pQueryType == QueryType.post ? "POST" : "GET"; 


            byte[] bytes;

            if (pQueryType == QueryType.post)
            {

                bytes = System.Text.Encoding.UTF8.GetBytes(pQuery);
                request.ContentType = "-application/x-www-form-urlencoded";
                request.ContentLength = bytes.Length;
                request.Timeout = 5000;
                request.ProtocolVersion = HttpVersion.Version10;
                request.KeepAlive = false;
                request.Accept = "*/*";

                if (request.Proxy != null) 
                    request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

                request.AllowWriteStreamBuffering = false;
                request.Credentials = System.Net.CredentialCache.DefaultCredentials;

                Stream requestStream = request.GetRequestStream(); //<<<<<<<<  FAILS HERE
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Close();
            }

            HttpWebResponse response = request.GetResponse() as HttpWebResponse;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream responseStream = response.GetResponseStream(); 
                string responseStr = new StreamReader(responseStream).ReadToEnd();
                result = true;

                pResponse = responseStr;
                responseStream.Close();
            }
...