c# – 密码中的FTP特殊字符?
发布时间:2020-12-15 21:26:31 所属栏目:百科 来源:网络整理
导读:我正在尝试登录到ftp服务器.在C#中使用以下代码. FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp-server");request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;// This example assumes the FTP site uses anonymous logo
我正在尝试登录到ftp服务器.在C#中使用以下代码.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp-server"); request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; // This example assumes the FTP site uses anonymous logon. //request.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequired; request.Credentials = new NetworkCredential("userName","password!#£"); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 但是,当密码包含一些特殊字符时,登录失败.例如(‘!’或’£’)?我得到以下异常. Unhandled Exception: System.Net.WebException: The remote server returned an error: (530) Not logged in. at System.Net.FtpWebRequest.SyncRequestCallback(Object obj) at System.Net.FtpWebRequest.RequestCallback(Object obj) at System.Net.CommandStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.IO.Stream.Dispose() at System.Net.ConnectionPool.Destroy(PooledStream pooledStream) at System.Net.ConnectionPool.PutConnection(PooledStream pooledStream,Object owningObject,Int32 creationTimeout,Bo ean canReuse) at System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage) at System.Net.FtpWebRequest.GetResponse() at FtpClientTest.Program.FtpWebRequest() 密码不包含任何特殊字符时,我不会收到任何异常. 解决方法
什么是ftp服务器?你能用其他程序登录吗?如果是,请使用
wireshark比较电线上的内容.
所以它可能只是ANSI编码,所以试试吧 var secureString = new SecureString(); foreach (var b in Encoding.Default.GetBytes("password!#£")) secureString.AppendChar((char)b); request.Credentials = new NetworkCredential("userName",secureString); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |