首页 > Windows开发 > 详细

C#连接服务器验证帐号密码

时间:2015-08-11 21:20:00      阅读:199      评论:0      收藏:0      [点我收藏+]
private bool CheckSmtp(string smtpServer, int port,string username,string password)
        {
            TcpClient tcpClient = new TcpClient(smtpServer, port);
            NetworkStream  stream = tcpClient.GetStream();
            
            if(!WaiteFor(stream,"220")) return false ;

            SendCommand(stream, "HELO 211.152.50.xxx\r\n");
            if (!WaiteFor(stream, "250")) return false;

            SendCommand(stream, "AUTH LOGIN\r\n");
            if (!WaiteFor(stream, "334")) return false;

            SendCommand(stream,Base64Encode(username)+  "\r\n");
            if (!WaiteFor(stream, "334")) return false;

            SendCommand(stream, Base64Encode(password) + "\r\n");
            if (!WaiteFor(stream, "235")) return false;


            return true;

        }

        private bool  WaiteFor(NetworkStream stream, string strCode)
        {
            int StreamSize;
            byte[] ReadBuffer = new byte[1024];
            StreamSize = stream.Read(ReadBuffer, 0, ReadBuffer.Length);
            string Returnvalue = Encoding.Default.GetString(ReadBuffer).Substring(0, StreamSize);

            Console.WriteLine(Returnvalue);

            return Returnvalue.Substring(0, 3).Equals(strCode);
        }
        private void SendCommand(NetworkStream stream,string strCmd)
        {
            byte[] WriteBuffer;

            WriteBuffer = Encoding.Default.GetBytes(strCmd);

            stream.Write(WriteBuffer, 0, WriteBuffer.Length);
            
        }

        private string Base64Encode(string str)
        {
            byte[] barray;
            barray = Encoding.Default.GetBytes(str);
            return Convert.ToBase64String(barray);
        }

 

C#连接服务器验证帐号密码

原文:http://www.cnblogs.com/ji84899/p/4722099.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!