前提・実現したいこと
C#でFTPクライアントを実装するにあたり、FtpWebRequestクラス、FtpWebRequestクラスの使用を検討しております。
FTPサーバーにログインする際、サーバーからの応答コード"332"(Need account for login.)が返って来た場合、
FTPクライアントとしては、"ACCT"コマンドをFTPサーバーに送信する必要があると認識しております。
FtpWebRequestクラス、FtpWebRequestクラスを使用して、ACCTコマンドを送信する事はできるのでしょうか?
現状、CredentialsプロパティにNetworkCredential("user", "password")を指定しています。
発生している問題・エラーメッセージ
FTPサーバーから応答コード"332"が返って来ても、ACCTコマンドを送信しません。
該当のソースコード
C#
1// ■■■アップロード処理■■■ 2// 取得先情報設定 3var serverUri = "ftp://192.168.1.2/"; 4 5// FtpWebReqオブジェクト生成 6var ftpWebReq = (FtpWebRequest)WebRequest.Create(serverUri); 7 8// プロパティ設定 9ftpWebReq.KeepAlive = true; 10ftpWebReq.UsePassive = true; 11ftpWebReq.UseBinary = true; 12ftpWebReq.Method = WebRequestMethods.Ftp.PrintWorkingDirectory; 13ftpWebReq.Credentials = new NetworkCredential("user", "pwd"); 14ftpWebReq.Timeout = 60 * 1000; 15 16// ストリーム関係 17WebResponse ftpRes = null; 18 19// 終了メイン処理 20try 21{ 22 // FtpWebResponseを取得する 23 ftpRes = ftpWebReq.GetResponse(); 24} 25catch (Exception ex) 26{ 27 Console.WriteLine("FTP Put:Error:" + ex.Message); 28} 29finally 30{ 31 // 終了処理 32 if (ftpRes != null) ftpRes.Close(); 33} 34
試したこと
Credentialsプロパティに以下の情報を設定しても、応答コード"332"受信時にACCTコマンドを送信しませんでした。
public NetworkCredential (string userName, string password, string domain);
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。