2014-11-19 1 views
0

Я ищу, чтобы получить содержимое страницы изНе удается подключиться к URL в C# с 401 несанкционированной ошибкой

http://12.18.60.199:81 

Я использую свою корпоративную сеть и, если я использую Internet Explorer, он запрашивает имя пользователя и пароль, я печатаю это, и я получаю содержимое страницы. Мне нужно сделать это в C#, но не везет в течение последних нескольких часов:

Uri requestUri = null; 
Uri.TryCreate("http://12.18.60.199:81", UriKind.Absolute, out requestUri); 

NetworkCredential nc = new NetworkCredential(@"username", @"password", "domain"); 
CredentialCache cache = new CredentialCache(); 
cache.Add(requestUri, "Basic", nc); //also tried "Anonymous", "Basic", "Digest", "Dpa", 
           //"External", "Kerberos", "Msn", "Negotiate", "Ntlm", "Sicily" 

using (WebClient client = new WebClient()) 
{ 
    client.Credentials = cache; 
    using (Stream stream = client.OpenRead("http://12.18.60.199:81")) 
    using (StreamReader reader = new StreamReader(stream)) 
    { 
     //stuff 
    } 
} 

Keep получать 401 несанкционированные недействительны, помочь!

Если я заменить вышеуказанный адрес с http://google.com, он будет работать, так что код работает ... имя пользователя и пароль были протестированы для работы в Broswer

+0

Пробег через прокси-сервер? – luke2012

+0

Уверен, что сервер использует базовую аутентификацию? Попробуйте дайджест. –

+0

Я не очень хорошо разбираюсь в этих вещах, я полагаю, что я использую прокси-сервер моего корпоративного пользователя при подключении к Интернету, поскольку некоторые сайты заблокированы. –

ответ

0

При подключении через прокси-сервер попробуйте добавить в ваш прокси-сервер и передать учетные данные. Например:

// Prepare web request... 
HttpWebRequest myRequest = 
    (HttpWebRequest)WebRequest.Create("http://www.test.com"); 
// proxy details 
myRequest.Proxy = new WebProxy("http://10.0.0.1", true); 
myRequest.Proxy.Credentials = new NetworkCredential("test", "password", "domain"); 
0

У меня была такая же проблема, и нашло обходное решение для добавления заголовка запроса авторизации. Я использовал скрипач, чтобы получить этот base64. Никогда не находили подходящего решения, поскольку все вы знаете, что временные решения долговечны в мире :)

service.Url = "http://127.0.0.1/"; 
service.SetRequestHeader("Authorization", "Basic dW8sX3NvYXB6SjRma2pzdXZqNDg5ZA==");    
service.PreAuthenticate = true; 
+0

Привет, это кажется интересным, не могли бы вы вставить полный пример кода? –

+0

Это в значительной степени Я использую его для разных целей, для авторизации веб-сервиса. Это просто подсказка для вас. –

 Смежные вопросы

  • Нет связанных вопросов^_^