Ejemplo n.º 1
0
AuthResponse AuthenticateClient(char *buffer, std::string &clientName)
{
    //authenticate user and send response
    std::map<std::string, std::string> userMap;
    if(!GetUsersFromFile(userMap))
    {
        return ERROR;
    }
    char *user = strtok(buffer, "\t");
    clientName = user;
    char *passwd = strtok(NULL, "\t");
    std::string Passwd(passwd);
    std::map<std::string, std::string>::iterator it = userMap.find(clientName);
    //check if username exists
    if(it == userMap.end())
    {
        return UNKNOWN_USER;
    }
    //if passwords dont match, wrong password
    if(it->second != Passwd)
    {
        return WRONG_PASSWORD;
    }
    return SUCCESS;
}
Ejemplo n.º 2
0
int cgiMain() 
{
	int ret;
	Name(user);
	Passwd(passwd);
	/* Send the content type, letting the browser know this is HTML */
	cgiHeaderContentType("text/html;charset=gb2312");
	/* Top of the page */

	fprintf(cgiOut, "<HTML><HEAD>\n");
	fprintf(cgiOut, "<LINK rel=\"SHORTCUT ICON\" 	href=\"../images/favicon.ico\">\n");
	fprintf(cgiOut, "<TITLE>NC600 Web Server</TITLE></HEAD>\n");
	ret = usr_check(user, passwd);
	if(ret == 0)
	{
		fprintf(cgiOut, "<BODY>\n");
		fprintf(cgiOut, "<script type=\"text/javascript\">\n");
		fprintf(cgiOut, "window.alert(\"Óû§Ãû»òÃÜÂë´íÎó£¬ÇëÖØеǼ£¡\");\n");
		fprintf(cgiOut, "window.location.href=\"../login.html\";\n");
		fprintf(cgiOut, "</script>\n");
		fprintf(cgiOut, "</BODY>\n");
		fprintf(cgiOut, "</HTML>\n");
		return 0;
	}

	fprintf(cgiOut, "<frameset rows=\"80,*\" cols=\"*\" frameborder=\"no\" border=\"0\" framespacing=\"0\">\"\n");
	fprintf(cgiOut, "<frame src=\"../top.html\" name=\"topFrame\" scrolling=\"No\" noresize=\"noresize\" id=\"topFrame\" title=\"topFrame\" />\n");
	fprintf(cgiOut, "<frameset cols=\"150,*\" frameborder=\"no\" border=\"0\" framespacing=\"0\">\n"); 
	fprintf(cgiOut,	"<frame src=\"../left.html\" name=\"leftFrame\" scrolling=\"auto\" noresize=\"noresize\" id=\"leftFrame\" title=\"leftFrame\" />\n");
	fprintf(cgiOut, "<frame src=\"../welcome.html\" name=\"mainFrame\" id=\"mainFrame\" title=\"mainFrame\" />\n");
	fprintf(cgiOut, "</frameset>\n");
	fprintf(cgiOut, "</frameset>\n");
	fprintf(cgiOut, "<noframes>\n");

	fprintf(cgiOut, "<BODY>\n");
	fprintf(cgiOut, "</BODY></noframes></HTML>\n");
	
	return 0;
}
Ejemplo n.º 3
0
//根据用户账号名修改用户账号密码,不存在这个用户账号名,提示出错信息
int Account_UI_Modify(account_list_t head,char usrName[]) {
       		int er=0,ret=0,q=0;
       		char choice;
            void Passwd();
            
	Pagination_t paging;
	paging.totalRecords = Account_Srv_FetchAll(head);
		account_t data;	
		if( Account_Srv_FetchByUsrName(usrName,&data) ){
			if(gl_CurUser.id==data.id){
				printf("\n		----------------------------没有权限!------------------------------");
				cl_stdin();
				getchar();
				return 0;
			}
			while(1) { 

				system("clear");
				
				printf("\n\t\t==================================================================");
       			printf("\n\t\t***************************修改用户********************************");
        		printf("\n\t\t==================================================================");
       			printf("\n\t\t\t%s\t\t%s\t\t%s", "ID", "用户类型", "用户名");
				printf("\n\t\t------------------------------------------------------------------");
            	printf("\n		             \033[31m**该功能涉及系统安全,请谨慎操作!**\033[0m\n");
				printf("\n\t\t------------------------------------------------------------------");
				printf("\n\t\t\t%d\t\t ", data.id);
			
				switch(data.type){
					case USR_CLERK:  printf("%s\t\t\t","CLERK"); 	break;
					case USR_MANG:	 printf("%s\t\t\t","MANG");  	break;
					case USR_ADMIN:  printf("%s\t\t\t","ADMIN"); 	break;
				}
				printf("%-20s", data.username);
				printf("\n		==================================================================");
        		printf("\n		|---------总数%2d------------------------------%2d/%2d页----------|",paging.totalRecords ,Pageing_CurPage(paging),Pageing_TotalPages(paging));
        		printf("\n		==================================================================");;
				printf("\n		******************************************************************");
        		printf("\n\t\t|	  [T]ype	|	[P]asswd	|	[R]eturn	|");
        		printf("\n		******************************************************************");
        		printf("\n\t\tYour choice:");
				choice=l_getc();
				if('r'==choice || 'R'==choice) break;	
				switch(choice){
					
						
					case 'p':
					case 'P':
                        Passwd();
						/*{
						char fpwd[30]spwd[30];
						while(1){
							printf("\n\t\t|	新密码:");
							cl_stdin();
							getpwd(30,fpwd);
							printf("\n\t\t|请再次输入新密码:");
							
							getpwd(30spwd);
							if( strcmp(fpwdspwd)==0 ){
								strcpy(data.password,fpwd);
								q=1;
								break;
							}else{
							printf("\n\n		-----------------两次新密码输入不一致!-------------------------");
							}
						}
						}*/
						break;
						
					case 't':
					case 'T':
						printf("\n		-------[1].CLERK------------[2].MANG-------------[3].ADMAIN--------");
						printf("\n		|     请选择用户类型:");
						while(1){
							er=0;
							choice=l_getc();
							switch(choice){
								case '1': 
									
									if(data.type!= USR_CLERK){
										data.type= USR_CLERK;
									}else{
										printf("\n		----------------------------类型相同!------------------------------");
									} 	
									break;
									
								case '2': 
								
									if(data.type!= USR_MANG){
										data.type= USR_MANG;
										q=1;
									}else{
										printf("\n		----------------------------类型相同!------------------------------");
										q=0;
									} 	
									break;
								case '3': 
								
									if(data.type!= USR_ADMIN){
										data.type= USR_ADMIN;
										q=1;
									}else{
										printf("\n		----------------------------类型相同!------------------------------");
										q=0;
									} 	
									break;
								default : er=1; printf("\n\t\t        	           **输入有误!**   ");
							}
							if(er!=1) break;
						}
						break;
					}
			
				
				if(q && Account_Srv_Modify(&data)){
					printf("\n		----------------------------修改成功!------------------------------");
					ret=1;
				}else{
					if(q!=0) printf("\n		----------------------------修改成功!------------------------------");;
				}
				cl_stdin();
				sleep(1);
		
		}
       
       }else{
       		printf("\n		----------------------------未找到信息!------------------------------");
		cl_stdin();
		sleep(1);
       	}
       
       return ret;
}