Example #1
0
static DWORD UserEventCreate(CHAR *userName, USERFILE *userFile)
{
    MOD_CONTEXT *mod;
    DWORD       result;
    INT32       userId;

    ASSERT(userName != NULL);
    ASSERT(userFile != NULL);

    // Module context is required for all file operations
    mod = MemAllocate(sizeof(MOD_CONTEXT));
    if (mod == NULL) {
        result = ERROR_NOT_ENOUGH_MEMORY;
        LOG_ERROR("Unable to allocate memory for module context.");

    } else {
        // Initialize MOD_CONTEXT structure
        mod->file = INVALID_HANDLE_VALUE;
        userFile->lpInternal = mod;

        // Register user
        result = UserRegister(userName, userFile, &userId);
        if (result != ERROR_SUCCESS) {
            TRACE("Unable to register user (error %lu).", result);
        } else {

            // Create user file
            result = FileUserCreate(userId, userFile);
            if (result != ERROR_SUCCESS) {
                TRACE("Unable to create user file (error %lu).", result);

                // Creation failed, clean-up the user file
                FileUserDelete(userId);
                FileUserClose(userFile);
                UserUnregister(userName);
            }
        }

        if (result != ERROR_SUCCESS) {
            // Free module context after all file operations
            MemFree(mod);
        }
    }

    return result;
}
Example #2
0
void Login(int z)
{
    int denglui=10;
    int nocls=1;
while(denglui!=0)
  {   if(nocls==1)
      {
          system("cls");    //清屏
      __COUTASTERISK__ if(z==1)printf("1.新用户注册 2.旧用户登录 0.返回\n");else printf("1.新商家注册 2.旧商家登录 0.返回\n"); __COUTASTERISK__
      }
     scanf("%d",&denglui);
      fflush(stdin);
      switch(denglui)
       {

       case 1: nocls=1;if(z==1)UserRegister(); if(z==2)CTRegister(); denglui=10;break;
       case 2: nocls=1;if(z==1)UserLogin();if(z==2)CTLogin();denglui=10;break;
       case 0:break;
        default: nocls=0; printf("输入错误,请重新输入\n");break;

       }
  }
Example #3
0
void CClientSocket::Register(char* buff,int nlen,char from[20],char beizhu[20])
{
	HEADER rhead;
	rhead.type = MSG_REGIST;
	rhead.SendLen = nlen;
	strcpy(rhead.from,from);
	strcpy(rhead.beizhu,beizhu);
	//发送给客户端注册成功是否的消息头
	HEADER head3;
	head3.type = MSG_REGIST;
	head3.SendLen = nlen;
	memset(head3.to,0,20);
	memset(head3.from,0,20);
	memset(head3.beizhu,0,20);
	strcpy(head3.to,rhead.from);
	//验证登陆是否成功
	for(iter=userlist.begin();iter!=userlist.end();iter++)
	{
		if((CString)rhead.from == (CString)iter->username) //用户已存在
		{ 
			strcpy(head3.beizhu,"no");//失败
			Send((char*)&head3, sizeof(head3));
			return;
		}
	}
	if(iter == userlist.end()) //没有相同的用户,可以注册
	{
		UserRegister(CString(from),CString(beizhu));
		User user;
		user.username = from;
		user.password = beizhu;
		userlist.push_back(user); //将注册的用户添加到容器中
		memset(head3.beizhu,0,20);
		strcpy(head3.beizhu,"yes");//成功
		Send((char*)&head3, sizeof(head3));
	}
}
Example #4
0
static INT32 UserCreate(CHAR *userName)
{
    DB_CONTEXT  *db;
    MOD_CONTEXT *mod;
    DWORD       result;
    INT32       userId = -1;
    USERFILE    userFile;

    TRACE("userName=%s", userName);

    if (!DbAcquire(&db)) {
        return userId;
    }

    // Module context is required for all file operations
    mod = MemAllocate(sizeof(MOD_CONTEXT));
    if (mod == NULL) {
        result = ERROR_NOT_ENOUGH_MEMORY;
        LOG_ERROR("Unable to allocate memory for module context.");

    } else {
        // Initialize MOD_CONTEXT structure
        mod->file = INVALID_HANDLE_VALUE;

        // Initialize USERFILE structure
        ZeroMemory(&userFile, sizeof(USERFILE));
        userFile.Groups[0]      = NOGROUP_ID;
        userFile.Groups[1]      = -1;
        userFile.AdminGroups[0] = -1;
        userFile.lpInternal     = mod;

        // Read "Default.User" file
        result = FileUserDefault(&userFile);
        if (result != ERROR_SUCCESS) {
            LOG_WARN("Unable to read \"Default.User\" file (error %lu).", result);
        }

        // Register user
        result = UserRegister(userName, &userFile, &userId);
        if (result != ERROR_SUCCESS) {
            TRACE("Unable to register user (error %lu).", result);
        } else {

            // Create user file
            result = FileUserCreate(userId, &userFile);
            if (result != ERROR_SUCCESS) {
                LOG_WARN("Unable to create user file (error %lu).", result);
            } else {

                // Create database record
                result = DbUserCreate(db, userName, &userFile);
                if (result != ERROR_SUCCESS) {
                    LOG_WARN("Unable to create database record (error %lu).", result);
                }
            }

            // If the file or database creation failed, clean-up the user file
            if (result != ERROR_SUCCESS) {
                FileUserDelete(userId);
                FileUserClose(&userFile);
                UserUnregister(userName);
            }
        }

        if (result != ERROR_SUCCESS) {
            // Free module context after all file operations
            MemFree(mod);

            // Indicate an error occured by returning an invalid user ID
            userId = -1;
        }
    }

    DbRelease(db);

    SetLastError(result);
    return userId;
}
void C51JobWebPost::RegisterFunc()
{
	m_iNeedChageIP = 0;
	m_iIpSuccNum = 0;
	CString sendStr = "";
	ShowMessage("初始化成功");
	if (g_iAotuChangeIp == 1)
	{
		sendStr.Format("自动换IP,单一IP注册数:%d",g_iIpRegNum);
		ShowMessage(sendStr);
	}	
	if (g_iAotuCheckCode==1)
	{
		ShowMessage("自动识别验证码");
	}
	m_strOldIP = "";
	while (!g_ExitFlag)
	{
// 		m_hwnd = ::FindWindow("#32770","帐号注册");
// 		while(!m_hwnd)
// 		{
// 			m_hwnd = ::FindWindow("#32770","帐号注册");
// 			ShowMessage("请打开客户端注册窗口");
// 			Sleep(1000);
// 		}
// 		char str[128] = {0};
// 		HWND hwnd = NULL;
// 		CWindowFind find;
// 		//hwnd = find.MyFindWindow("Internet Explorer_Server","",hwnd);
// 		hwnd = find.GetChildWindow(m_hwnd,1);
// 		hwnd = find.GetChildWindow(hwnd,1);
// 		hwnd = find.GetChildWindow(hwnd,1);
// 		hwnd = find.GetChildWindow(hwnd,1);
// 		GetClassName(hwnd,str,sizeof(str));//获取类名 
// 		if(strcmp(str,"Internet Explorer_Server")==0)
// 		{
// 			IHTMLDocument2 *pDoc = GetDocInterface(hwnd);
// 			GetHtmlCtrl(pDoc);
// 		}
// 		Sleep(1000);
// 		continue;
		if (g_RegisterList.GetSize() <= 0)
		{
			Sleep(500);
			continue;
		}
		
		m_iIpSuccNum = 0;
		m_iNeedChageIP = 1;
		int iErrorCount = 0;
		int iSameIpCount = 0;
// 		if (!g_iAotuChangeIp)//不需要自动换IP
// 		{
// 			//更换MAC地址
// 			if (m_iIsNeedChangeMac)
// 			{
// 				m_iIsNeedChangeMac = ChangeMacAddr();
// 				if (m_iIsNeedChangeMac == 1)
// 				{
// 					ShowMessage("修改MAC地址失败");
// 				}
// 				else
// 				{
// 					m_iIsNeedChangeMac = 0;
// 				}
// 			}
// 			else
// 			{
// 				ShowMessage("已经更换MAC地址");				
// 			}
// 		}
		CString strTest = "";
// 		while(GetGateWayIP(strTest) != 0)
// 		{
// 			Sleep(1000);
// 		}
		//ShowMessage("网络连接成功");	
		DeleteObjectExEx();
		while (m_iNeedChageIP && !g_ExitFlag && g_iAotuChangeIp == 1)	//如果需要换IP
		{
			m_iNeedChageIP = 1;
			g_RasMgr.StopRas(sendStr);
			ShowMessage(sendStr);
			//更换MAC地址
			if (m_iIsNeedChangeMac == 1)
			{
				 m_iIsNeedChangeMac = ChangeMacAddr();
				 if (m_iIsNeedChangeMac == 1)
				 {
					 ShowMessage("修改MAC地址失败");
				 }
				 else
				 {
					 m_iIsNeedChangeMac = 0;
				 }
			}
			else
			{
				 ShowMessage("已经更换MAC地址");
			}
			int iRet =  g_RasMgr.DialRas(sendStr);			
			ShowMessage(sendStr);
			if (iRet == 0)		//重新拨号成功,获取新的IP
			{
				if (g_iCheckIpFlag == 2)////POST检测
				{
					int iRet = -1;
					int iErrorNum = 0;
					while (iRet == -1)
					{
						iRet = GetGateWayIP(g_strCurrIP);
						if (iRet == -1)
						{
							iErrorNum++;
							sendStr.Format("获取本机Ip失败 %d 次,重试...",iErrorNum);
							ShowMessage(sendStr);							
							if (iErrorNum >= 3)
							{
								ShowMessage("获取本机Ip失败次数超过限制,跳过此操作...");
								g_strCurrIP = m_strOldIP;
								break;
							}
							Sleep(300);
						}
						else
						{
							ShowMessage("检测到本机Ip: "+g_strCurrIP);
						}
					}
					if (g_strCurrIP == m_strOldIP)
					{
						m_iNeedChageIP = 1;
						iSameIpCount ++;
						if (iSameIpCount < g_iReCheckIpCount)
						{
							sendStr.Format("Ip未更换,重复拨号[%d]...",iSameIpCount);
							ShowMessage(sendStr);
							Sleep(300);
							continue;
						}
						sendStr.Format("重复拨号次数[%d]超过限制仍未更换Ip,跳过此操作...",g_iReCheckIpCount);
						ShowMessage(sendStr);
						iSameIpCount = 0;
					}
					else	//IP更换成功
					{
						m_strOldIP = g_strCurrIP;
					}
				}
				else if (g_iCheckIpFlag == 1)//RAS检测
				{
					int iRet = -1;
					int iErrorNum = 0;
					while (iRet == -1)
					{
						iRet = g_RasMgr.GetGateWayIP(g_strCurrIP);
						if (iRet == -1)
						{
							iErrorNum++;
							sendStr.Format("获取本机Ip失败 %d 次,重试...",iErrorNum);
							ShowMessage(sendStr);
							if (iErrorNum >= 3)
							{
								ShowMessage("获取本机Ip失败次数超过限制,跳过此操作...");
								g_strCurrIP = m_strOldIP;
								break;
							}
							Sleep(300);
						}
						else
						{
							ShowMessage("检测到本机Ip: "+g_strCurrIP);
						}
					}
					if (g_strCurrIP == m_strOldIP)
					{
						m_iNeedChageIP = 1;
						iSameIpCount ++;
						if (iSameIpCount < g_iReCheckIpCount)
						{
							sendStr.Format("Ip未更换,重复拨号[%d]...",iSameIpCount);
							ShowMessage(sendStr);
							Sleep(500);
							continue;
						}
						sendStr.Format("重复拨号次数[%d]超过限制仍未更换Ip,跳过此操作...",g_iReCheckIpCount);
						ShowMessage(sendStr);
						iSameIpCount = 0;
					}
					else	//IP更换成功
					{
						m_strOldIP = g_strCurrIP;
					}
				}
				else{}//不检测
				iSameIpCount = 0;
				m_iNeedChageIP = 0;
				iErrorCount = 0;
				break;
			}
			iErrorCount ++;
			if (iErrorCount>=10)
			{
				ShowMessage("拨号连接失败次数过多,请确认您是使用ADSL拨号并且配置正确");
				return;
			}
			Sleep(500);
		}
		m_iIsNeedChangeMac = 0;
		m_iNeedChageIP = 0;
		if (!g_ExitFlag)
		{
			//ReOpenRegWindow();
			UserRegister();
		}		
		if (g_ExitFlag)
		{
			return;
		}
	}   
}
void C51JobWebPost::RegisterFunc()
{
	m_iNeedChageIP = 0;
	m_iIpSuccNum = 0;
	CString sendStr = "";
	ShowMessage("初始化成功");
	if (g_iAotuChangeIp == 1)
	{
		sendStr.Format("自动换IP,单一IP注册数:%d",g_iIpRegNum);
		ShowMessage(sendStr);
	}	
	if (g_iAotuCheckCode==1)
	{
		ShowMessage("自动识别验证码");
	}
	m_strOldIP = "";
	while (!g_ExitFlag)
	{
		if (g_RegisterList.GetSize() <= 0)
		{
			Sleep(500);
			continue;
		}		
		m_iIpSuccNum = 0;
		m_iNeedChageIP = 1;
		int iErrorCount = 0;
		int iSameIpCount = 0;
// 		if (!g_iAotuChangeIp)		//不需要自动换IP
// 		{
// 			//更换MAC地址
// 			if (m_iIsNeedChangeMac)
// 			{
// 				m_iIsNeedChangeMac = ChangeMacAddr();
// 				if (m_iIsNeedChangeMac == 1)
// 				{
// 					ShowMessage("修改MAC地址失败");
// 				}
// 				else
// 				{
// 					m_iIsNeedChangeMac = 0;
// 				}
// 			}
// 			else
// 			{
// 				ShowMessage("已经更换MAC地址");				
// 			}
// 		}
		while (m_iNeedChageIP && !g_ExitFlag && g_iAotuChangeIp == 1)	//如果需要换IP
		{
			m_iNeedChageIP = 1;
			g_RasMgr.StopRas(sendStr);
			Sleep(g_iRedialStop);
			ShowMessage(sendStr);
			//更换MAC地址
// 			if (m_iIsNeedChangeMac == 1)
// 			{
// 				 m_iIsNeedChangeMac = ChangeMacAddr();
// 				 if (m_iIsNeedChangeMac == 1)
// 				 {
// 					 ShowMessage("修改MAC地址失败");
// 				 }
// 				 else
// 				 {
// 					 m_iIsNeedChangeMac = 0;
// 				 }
// 			}
// 			else
// 			{
// 				 ShowMessage("已经更换MAC地址");
// 			}
			int iRet =  g_RasMgr.DialRas(sendStr);		
			ShowMessage(sendStr);
			if (iRet == 0)		//重新拨号成功,获取新的IP
			{
				if (g_iCheckIpFlag == 2)////POST检测
				{
					int iRet = -1;
					int iErrorNum = 0;
					while (iRet == -1)
					{
						iRet = GetGateWayIP(g_strCurrIP);
						if (iRet == -1)
						{
							iErrorNum++;
							sendStr.Format("获取本机Ip失败 %d 次,重试...",iErrorNum);
							ShowMessage(sendStr);							
							if (iErrorNum >= 3)
							{
								ShowMessage("获取本机Ip失败次数超过限制,跳过此操作...");
								g_strCurrIP = m_strOldIP;
								break;
							}
							Sleep(300);
						}
						else
						{
							ShowMessage("检测到本机Ip: "+g_strCurrIP);
						}
					}
					if (g_strCurrIP == m_strOldIP)
					{
						m_iNeedChageIP = 1;
						iSameIpCount ++;
						if (iSameIpCount < g_iReCheckIpCount)
						{
							sendStr.Format("Ip未更换,重复拨号[%d]...",iSameIpCount);
							ShowMessage(sendStr);
							Sleep(300);
							continue;
						}
						sendStr.Format("重复拨号次数[%d]超过限制仍未更换Ip,跳过此操作...",g_iReCheckIpCount);
						ShowMessage(sendStr);
						iSameIpCount = 0;
					}
					else	//IP更换成功
					{
						m_strOldIP = g_strCurrIP;
					}
				}
				else if (g_iCheckIpFlag == 1)//RAS检测
				{
					int iRet = -1;
					int iErrorNum = 0;
					while (iRet == -1)
					{
						iRet = g_RasMgr.GetGateWayIP(g_strCurrIP);
						if (iRet == -1)
						{
							iErrorNum++;
							sendStr.Format("获取本机Ip失败 %d 次,重试...",iErrorNum);
							ShowMessage(sendStr);
							if (iErrorNum >= 3)
							{
								ShowMessage("获取本机Ip失败次数超过限制,跳过此操作...");
								g_strCurrIP = m_strOldIP;
								break;
							}
							Sleep(300);
						}
						else
						{
							ShowMessage("检测到本机Ip: "+g_strCurrIP);
						}
					}
					if (g_strCurrIP == m_strOldIP)
					{
						m_iNeedChageIP = 1;
						iSameIpCount ++;
						if (iSameIpCount < g_iReCheckIpCount)
						{
							sendStr.Format("Ip未更换,重复拨号[%d]...",iSameIpCount);
							ShowMessage(sendStr);
							Sleep(500);
							continue;
						}
						sendStr.Format("重复拨号次数[%d]超过限制仍未更换Ip,跳过此操作...",g_iReCheckIpCount);
						ShowMessage(sendStr);
						iSameIpCount = 0;
					}
					else	//IP更换成功
					{
						m_strOldIP = g_strCurrIP;
					}
				}
				else{}//不检测
				iSameIpCount = 0;
				m_iNeedChageIP = 0;
				iErrorCount = 0;
				break;
			}
			iErrorCount ++;
			if (iErrorCount>=10)
			{
				ShowMessage("拨号连接失败次数过多,请确认您是使用ADSL拨号并且配置正确");
				return;
			}
			Sleep(500);
		}
		m_iIsNeedChangeMac = 0;
		m_iNeedChageIP = 0;
		if (!g_ExitFlag)
		{
			UserRegister();
		}		
		if (g_ExitFlag)
		{
			return;
		}
	}   
}