首页 > 编程资源分享区 > C/C++源代码共享 > 用VC实现远程修改NT帐号
2006
09-01

用VC实现远程修改NT帐号

如果我们在Windows NT Server 4.0上建立一个独立的邮件服务器,那么邮件服务器的用户同时也必须是“从批处理作业登录”权限的NT域用户,因此用户邮件账号密码(亦即NT用户密码)的更改,必须以管理员身份登录到NT才能实现,十分不便。如何才能让普通邮件用户方便自由地更改其账号密码呢?下面,笔者就用VC编写一个CGI程序,来让普通用户通过浏览器访问网页来远程修改自己的个人帐号信息。

调用CGI程序的HTML源代码如下:

……
< form method=“post” action=“/cgi-bin/ChPass.exe” >
< table border=1 >
< tr >< td >用户名:< /td >< td >
< input name=User maxlength=20 >< /td >< /tr >
< tr >< td >口令:< /td >< td >
< input name=Password type=password maxlength=20 >
< /td >< /tr >
< tr >< td >新口令:< /td >< td >
< input name=NewPassword1 type=password maxlegth=20 >
< /td >< /tr >
< tr >< td >确认新口令:< /td >< td >
< input name=NewPassword2 type=password maxlength=20 >
< /td >< /tr >
……


该页面以POST方式调用ChPass.exe CGI程序更改 Windows NT 用户口令。

接下来,我们再来看看实现远程修改帐号功能的VC源程序 ,在本程序中,用户的输入先被转化为Unicode形式,解码后作为调用API函数的参数。首先,在VC中新建Win32控制台应用工程ChPass,部分代码如下。:

……
void PrintMIMEHeader(){
cout < < “Content-Type: text/html “;
}
void PrintHTMLHeader(){
cout < < “< html >< head >< title >
用户口令更改< /title >< /head >< body >”;
}

void PrintHTMLTrailer(){
cout < < “< /body >< /html >”;
}

void GetPOSTData(){ // 从STDIN中取得表单输入
char* pContentLength;
int iContentLength;
pContentLength=getenv(“CONTENT_LENGTH”);
if (pContentLength != NULL)
iContentLength=atoi(pContentLength)
else
iContentLength=0;
if (iContentLength >sizeof(szBuffer)-1)
iContentLength=sizeof(szBuffer)??1;
int i=0;
while (i< iContentLength){
WCHAR x=fgetwc(stdin);
if (x == EOF) break;
szBuffer[i ++ ]=x;
}
szBuffer=‘


留下一个回复