Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Check Username & Pass

  1. #1
    Ngày gia nhập
    08 2007
    Bài viết
    3

    Question Check Username & Pass

    Mình đang code 1 FTP Server, đang đến đoạn nhập Username và Pass:

    - Yêu cầu đề ra là : nhập Username, Server kiểm tra xem chuỗi kí tự nhập vào là rỗng hay không ? nếu là rỗng thì gửi thông báo lỗi về Client

    - Có 1 đoạn code đã code sẵn, nó cho phép Username = rỗng, tiếp đến nó hỏi Pass, sau khi nhập Pass, nó mới check Username, rồi mới báo là đúng hay sai

    Mình muốn edit sao cho đúng theo yêu cầu đề bài, ai chỉ giúp đi, cảm ơn lắm lắm

    Code:
    void CControlSocket::ProcessCommand()
    {
    	CString strCommand, strArguments;
    
    	// get command
    	CString strBuff = m_strCommands.RemoveHead();
    	int nIndex = strBuff.Find(" ");
    	if (nIndex == -1)
    	{
    		strCommand = strBuff;
    	}
    	else
    	{
    		strCommand = strBuff.Left(nIndex);
    		strArguments = strBuff.Mid(nIndex+1);
    	}
    	strCommand.MakeUpper();
    	
    	// log command line
    	PostStatusMessage(strCommand + " " + strArguments, 1);
    
    	if ((m_nStatus == STATUS_LOGIN) && (strCommand != "USER" && strCommand != "PASS"))
    	{
    		SendResponse("530 Vui long dang nhap vo'i Username va` Password.");
    		return;
    	}
    	
    	// username entered
    	if (strCommand == "USER")
    	{
    		m_nStatus = STATUS_LOGIN;
    		m_strUserName = strArguments;
    
    		CString strPeerAddress;
    		UINT nPeerPort;
    		GetPeerName(strPeerAddress, nPeerPort);
    
    		// tell FTP server a new user has connected
    		CConnectThread *pThread = (CConnectThread *)m_pThread;
    		((CFTPServer *)pThread->m_pWndServer)->m_pEventSink->OnFTPUserConnected(m_pThread->m_nThreadID, m_strUserName, strPeerAddress);
    
    		SendResponse("331 Ye^u ca`u Password cho User %s", m_strUserName);
    	}
    	else
    	// password entered
    	if (strCommand == "PASS")
    	{
    		// already logged on ?
    		if (m_strUserName.IsEmpty())
    		{
    			SendResponse("503 Dang nhap voi Username truoc'.");
    		}
    		else
    		{
    			// now we have user name and password, attempt to login the client
    			if (theServer.m_UserManager.GetUser(m_strUserName, m_User))
    			{
    				// check password
    				if ((!m_User.m_strPassword.Compare(strArguments) || m_User.m_strPassword.IsEmpty()) && !m_User.m_bAccountDisabled)
    				{
    					// set home directory of user
    					m_strCurrentDir = "/";
    
    					// succesfully logged on
    					m_nStatus = STATUS_IDLE;
    					SendResponse("230 User da~ dang nhap thanh` co^ng.");
    					return;
    				}
    			}
    			SendResponse("530 Chua dang nhap duoc, Username hoac Password sai!");
    		}
    	}		
    	else
    Cảm ơn đã lắng nghe

  2. #2
    Ngày gia nhập
    08 2007
    Bài viết
    3

    Mình sửa được rùi

    Code:
    // username entered
    	if (strCommand == "USER")
    	{
    		m_nStatus = STATUS_LOGIN;
    		m_strUserName = strArguments;
    
    		CString strPeerAddress;
    		UINT nPeerPort;
    		GetPeerName(strPeerAddress, nPeerPort);
    		
    		// already logged on ?
    		if (m_strUserName.IsEmpty())
    			{
    			SendResponse("503 Username rong~-->sai'.");
    			return;
    			}
    
    			else
    				{
    				// tell FTP server a new user has connected
    				CConnectThread *pThread = (CConnectThread *)m_pThread;
    				((CFTPServer *)pThread->m_pWndServer)->m_pEventSink->OnFTPUserConnected(m_pThread->m_nThreadID, m_strUserName, strPeerAddress);
    
    				SendResponse("331 Ye^u ca`u Password cho User %s", m_strUserName);
    				}
    	}
    	else
    	// password entered
    	if (strCommand == "PASS")
    	{
    		
    			// now we have user name and password, attempt to login the client
    			if (theServer.m_UserManager.GetUser(m_strUserName, m_User))
    			{
    				// check password
    				if ((!m_User.m_strPassword.Compare(strArguments) || m_User.m_strPassword.IsEmpty()) && !m_User.m_bAccountDisabled)
    				{
    					// set home directory of user
    					m_strCurrentDir = "/";
    
    					// succesfully logged on
    					m_nStatus = STATUS_IDLE;
    					SendResponse("230 User da~ dang nhap thanh` co^ng.");
    					return;
    				}
    			}
    			SendResponse("530 Chua dang nhap duoc, Username hoac Password sai!");
    	}

Các đề tài tương tự

  1. ADO.NET Chỉ cho phép check một dòng trong cột check trên Datagridview
    Gửi bởi bkmt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 02-12-2011, 08:21 AM
  2. Bài tập C++ Kiểm tra Username có trùng hay không?
    Gửi bởi reach_phan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 24-10-2011, 04:21 PM
  3. Trả lời: 10
    Bài viết cuối: 18-10-2011, 12:10 PM
  4. kiểm tra checklistbox có được check hay ko và khi check nó trả về cáo gì?
    Gửi bởi tan408 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 19-05-2011, 04:35 PM
  5. [C++]-cần code đăng ký username
    Gửi bởi minhitcn2 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 23-11-2010, 01:23 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn