2014-02-07 2 views
0

В настоящее время я пытаюсь загрузить файл с нашего сайта компании и разместить его на рабочем столе пользователей, я пробовал этот код с другими веб-сайтами с JPG, и он действительно работал, но по какой-то причине, m пытается загрузить файл XLSM с нашего сайта (к которому можно получить доступ, только если вы вошли в систему на наших компьютерах, на которые я верю) это дает мне сообщение об ошибке 401. Я не знаю, что я делаю неправильно. Код, который я до сих пор:VB 2010 Загрузить онлайн-файл

Private sub button1_click(sender as system.object, e as system.eventargs) handles button1.click 
my.computer.network.downloadfile("http://portal.###.ws/canada/depts/MEG_IPT/Shared%20Documents/MEG%20Master%20Schedule.xlsm", "L:\User\KD\testing.xlsm") 
end sub 

Я заблокировал некоторые URL фактического сайта с ### по соображениям безопасности, независимо от людей за пределами нашей компании не могут получить к нему доступ. Еще одна вещь, которую я хотел бы отметить, это то, что когда пользователи нажимают на эту ссылку, появляется всплывающее сообщение, которое спрашивает, хочет ли пользователь открывать, сохранять или сохранять. поэтому я не уверен, что это то, что вызывает ошибку 401.

ответ

1

Вы должны использовать перегруженный метод с именем пользователя и паролем.

Private sub button1_click(sender as system.object, e as system.eventargs) handles button1.click 
my.computer.network.downloadfile("http://portal.###.ws/canada/depts/MEG_IPT/Shared%20Documents/MEG%20Master%20Schedule.xlsm", "L:\User\KD\testing.xlsm",yourusername, yourpassword) 
end sub 

Для получения дополнительной информации. http://msdn.microsoft.com/en-us/library/ack30t8y(v=vs.90).aspx

Для получения дополнительной информации об ошибке 401: http://www.checkupdown.com/status/E401.html

+1

Большое спасибо –

+0

Добро пожаловать –

0

Вы не получаете 401 "из приложения". Вы получаете 401 с сервера. HTTP.401 довольно понятен: у вас нет доступа к этому ресурсу. Если этот портал требует аутентификации (NTLM), вы должны предоставить действительные учетные данные, чтобы веб-сервер мог разрешить доступ к ресурсу. Вот пример использования WebClient (внутренне и потенциально такой же, как Network.DownloadFile), который позволяет вам указывать учетные данные пользователя.

Dim WC As New Net.WebClient 
WC.Credentials = New Net.NetworkCredential("user", "pwd") 
WC.DownloadFileAsync(New Uri("your url"), "local path") 

Вы должны добавить обработчик для события Complete, либо с помощью AddHandler, либо с помощью ключевого слова «WithEvents».

+0

Большое спасибо –

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