.NetのWebClientクラスを使用して既に作成されたプロジェクトがあります。FTPおよびWebDAVリソースには最適ですが、SCPまたはSFTPで機能させるにはどうすればよいですか?
1420 次
2 に答える
1
.Net フレームワークには組み込みの SCP サポートは含まれていません。SharpSSHを試してください。
FtpWebRequestクラスは EnableSsl プロパティを設定することでFTPESをサポートしますが、WebClient はそれを公開しないため、FtpWebRequest を直接使用する必要があります。
于 2009-10-09T00:32:21.370 に答える
1
独自のプレフィックスを登録することで、WebClient を FTP/SSL (SFTP ではなく) で動作させることができます。
private void RegisterFtps()
{
WebRequest.RegisterPrefix("ftps", new FtpsWebRequestCreator());
}
private sealed class FtpsWebRequestCreator : IWebRequestCreate
{
public WebRequest Create(Uri uri)
{
FtpWebRequest webRequest = (FtpWebRequest)WebRequest.Create(uri.AbsoluteUri.Remove(3, 1)); // Removes the "s" in "ftps://".
webRequest.EnableSsl = true;
return webRequest;
}
}
これを行うと、URI が「ftp://」ではなく「ftps://」で始まることを除いて、通常とほぼ同じように WebRequest を使用できます。1 つの注意点は、デフォルトのメソッドがないため、メソッドを指定する必要があることです。例えば
// Note here that the second parameter can't be null.
webClient.UploadFileAsync(uploadUri, WebRequestMethods.Ftp.UploadFile, fileName, state);
于 2011-08-11T04:19:46.087 に答える