【发布时间】:2010-11-17 13:13:01
【问题描述】:
为了访问互联网,我使用了需要身份验证的代理。我知道像这样将网络凭据传递给代理非常简单:
FtpWebRequest request = FtpWebRequest.Create(
new Uri("ftp://upload.myserver.com") as FtpWebRequest;
NetworkCredential credentials = new NetworkCredential("username", "password");
request.Credentials = credentials;
这行得通!
我也尝试使用CredentialCache.DefaultNetworkCredentials,但这不起作用。我想避免将用户名和密码存储在任何地方(代码、数据库、配置文件)。
我认为最简单的方法是使用当我使用 Internet Explorer 访问 Internet 时显示的相同对话框。有谁知道如何提出这个对话框?
http://services.arcgisonline.com/arcgisexplorer500/help/proxy_connect_to_on_browser_request.png
编辑
此任务的目标是通过 FTP 上传文件。最后我发现不需要为 FTP 请求设置代理,因为 .NET 框架不允许通过 HTTP 代理进行 FTP 操作。但是您必须将代理属性显式设置为 null。
FtpWebRequest request = FtpWebRequest.Create(
new Uri("ftp://upload.myserver.com") as FtpWebRequest;
NetworkCredential credentials = new NetworkCredential("username", "password");
request.Credentials = credentials;
request.Proxy = null;
就是这样!
【问题讨论】:
-
我没有足够的知识来回答你的问题,我只会创建一个登录表单,你必须在连接之前输入你的用户名和密码。
-
嗨尼克,这当然很容易做到,但对我来说,这似乎是在重新发明轮子。即使在MSDN 中也提到了这个对话框。
标签: c# authentication proxy ftp