Я не думаю, что у вас есть учетные данные, отсортированные правильно. Вы используете авторитетную часть URL-адреса в качестве домена для учетных данных.
Попробуйте это так: -
Dim myCache as New CredentialCache()
myCache.Add(New Uri("http://www.xxx.com"), "Basic", New NetworkCredential("username", "password"))
HTTPRequest.Credentials = myCache
Предполагается, что необходима обычная проверка подлинности, другим претендентом будет «Дайджест» или «NTLM», для которого может потребоваться домен. Например, если текст имени пользователя похож на этот «домен \ имя пользователя» в старом коде, то вы захотите: -
Dim myCache as New CredentialCache()
myCache.Add(New Uri("http://www.xxx.com"), "NTLM", New NetworkCredential("username", "password", "domain"))
HTTPRequest.Credentials = myCache
Кстати, я согласен с steamer25, для такого рода вещей вам действительно нужен инструмент, такой как Fiddler.
Если у вас есть пример старого фиддлера рабочего места на компьютере, на котором работает этот код. Запустите fiddler и используйте команду proxycfg -u. Теперь вы можете наблюдать за разговором оригинального материала с сервером ASP. Используйте proxycfg -d перед закрытием фиддлера.
Теперь в вашем .NET-коде поместите в приложение .config следующее: -
<system.net>
<defaultProxy enabled="false">
<proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
</defaultProxy>
</system.net>
Запустите fiddler и установите для включенного атрибута значение «true». Теперь вы должны увидеть разговор вашего нового кода с ASP-сервером. Убедитесь, что вы установили enabled = "false" перед использованием нового кода без захвата скрипача.