Вот раздел кода, который я использую для отправки запросов 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();
}