【发布时间】:2010-05-20 11:41:26
【问题描述】:
我公司的互联网使用身份验证在代理服务器上运行(即,每次我尝试访问任何网页时,浏览器都会通过窗口提示输入用户名/密码)。
现在我有一些试图访问 Internet 的 Windows 应用程序(例如用于 RSS 源的 WebPI/Visual Studio 2008),但是由于它们无法弹出身份验证窗口,因此它们无法连接到 Internet 并出现错误:
(407) 需要代理身份验证
。 这里的例外是VS2008,第一次它总是无法在启动页面上加载RSS提要,但是当我点击链接时,它会显示身份验证窗口,之后一切正常。
我的问题是:如何配置正常的 Windows 应用程序(通过 app.config/app.manifest 文件)访问网络以显示身份验证窗口或提供默认凭据。
为了进一步探索,我在 VS2008 上创建了一个控制台应用程序,它试图在 google 上搜索某些内容并在控制台上显示结果。代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace WebAccess.Test
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter Serach Criteria:");
string criteria = Console.ReadLine();
string baseAddress = "http://www.google.com/search?q=";
string output = "";
try
{
// Create the web request
HttpWebRequest request = WebRequest.Create(baseAddress + criteria) as HttpWebRequest;
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream
StreamReader reader = new StreamReader(response.GetResponseStream());
// Console application output
output = reader.ReadToEnd();
}
Console.WriteLine("\nResponse : \n\n{0}", output);
}
catch (Exception ex)
{
Console.WriteLine("\nError : \n\n{0}", ex.ToString());
}
}
}
}
运行时报错
Enter Serach Criteria:
Lalit
Error :
System.Net.WebException: The remote server returned an error: (407) Proxy Authen
tication Required.
at System.Net.HttpWebRequest.GetResponse()
at WebAccess.Test.Program.Main(String[] args) in D:\LK\Docs\VS.NET\WebAccess.
Test\WebAccess.Test\Program.cs:line 26
Press any key to continue . . .
【问题讨论】:
标签: .net windows configuration proxy