用VC实现远程修改NT帐号

CopyPwd工具以及源代码 DOS中修改NT系统管理帐号软件 以及其源代码 立即下载
用VC实现远程修改NT帐号
(刘光晔 2001年07月16日 16:12)

如果我们在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/n/n";
}
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[i]=‘/0';
}

//对URL编码进行解码
void ProcessData(){
PWCHAR p;
PWCHAR sep=(PWCHAR)“&";
User=wcstok(szBuffer,sep);
if (User != NULL)
Password=wcstok(NULL,sep);
if (Password!=NULL)
NewPassword1=wcstok(NULL,sep);
if (NewPassword1!=NULL)
NewPassword2=wcstok(NULL,sep);
p=wcsstr(User,L“User=");
if(p)
wcscpy(User,p+5);
else
User=NULL;
p=wcsstr(Password,L“Password=");
if(p)
wcscpy(Password,p+9);
else
Password=NULL;
p=wcsstr(NewPassword1,L“NewPassword1=");
if(p)
wcscpy(NewPassword1,p+13);
else
NewPassword1=NULL;
p=wcsstr(NewPassword2,L“NewPassword2=");
if(p)
wcscpy(NewPassword2,p+13);
else
NewPassword2=NULL;
}

//调用API函数更改口令
NET_API_STATUS ChangePassword(){
return NetUserChangePassword
(NULL,User,Password,NewPassword1);
//NULL为用户所属服务器
//User为用户账户名
//Password为旧密码
//NewPassword1为新密码
//函数返回值为NET_API_STATUS类型
}

void main(){
char* pRequestMethod;
pRequestMethod=getenv
(“REQUEST_METHOD");
if (pRequestMethod == NULL){
cout < <
“This program is designed to run as a CGI script/n";
return;
}
//限定以表单提交的形式执行CGI程式,
否则将页面重定向到输入表单
if (strcmp(pRequestMethod,“POST") != 0){
cout < < “Location: /changePass.htm/n/n";
return;
}
PrintMIMEHeader();
PrintHTMLHeader();
GetPOSTData();
ProcessData();

if(wcscmp(NewPassword1,NewPassword2)== 0)
{
switch(ChangePassword()){
case NERR_Success:
cout < < “< center >
< h2 >成功更改用户密码。< /h2 >";
break;
case ERROR_ACCESS_DENIED:
cout < < “< center >< h2 >
密码更改失败:拒绝访问。< /h2 >";
break;
case ERROR_INVALID_PASSWORD:
cout < < “< center >< h2 >
密码更改失败:无效的密码。< /h2 >";
break;
case NERR_UserNotFound:
cout < < “< center >< h2 >
密码更改失败:不存在该用户。< /h2 >";
break;
case NERR_PasswordTooShort :
cout < < “< center >< h2 >密码更改失败:
新密码不合要求,请选择新的密码。< /h2 >";
break;
default:
cout < < “< center >< h2 >密码更改失败。< /h2 >";
}

}
else
cout < < “< center >< h2 >密码更改失败:
两次输入新口令不一致。< /h2 >";
PrintHTMLTrailer();
}
copypwd. 导入,导出AD的用户名和密码的工具。 立即下载

相关推荐

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档)

SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心...

远程修改WINDOW2000域服务器中用户密码

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netuserchangepassword.aspPlatform SDK: Network ManagementNetUserChangePasswordThe NetUserChangePassword function change...

weixin_30266885的博客 232

YOLOv8作物病害检测实战源码

这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。

用VC实现远程修改NT帐号 (转)

用VC实现远程修改NT帐号 (转)[@more@]如果我们在windows NT Server 4.0上建立一个独立的邮件服务器,那么邮件服务器的用户同时也必须是“从批处理作业登录"权限的NT域用户,因此用户邮件账号密码(亦即N...

csobhtdx34120的博客 157

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

远程线程注入技术 屏蔽ctrl alt del

远程线程注入技术 屏蔽ctrl alt delbooks  发表于: 2007-08-18 11:58  来源:转载     浏览:(40)  评论:(2)收藏 | 复制地址 |      大 中 小 |  引用 删除 修改概要 此文章的信息来自优快云论坛VC/MFC版的讨论  在NT/2000中怎么禁用Ctrl+Alt+Delete?(不能用gina,键盘驱动)  在Windows2000中C

jingzu的专栏 1776

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

IT文档 15

用VB编写收发电子邮件程序用VB编写登录程序用VB编程实现任意修改Windows桌面背景用VB编程让文本滚动更平滑用VB计算累计时间值用VB设计MSN信息群发软件用VB设计VCD播放器用VB设计聚焦框程序用VB调试串口通讯用VB进行多媒体程序设计初步用VC++ 6.0制作网络自动测试程序用VC++5.0实现多线程的调度和处理用VC++6.0实现PC机与单片机之间串行通信的方法用VC++6.0开发多

iamhere1956的专栏 697

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

江民10日病毒播报称:小心“硬盘魔鬼”等病毒感染

江民10日病毒播报称:小心“硬盘魔鬼”等病毒感染 来源:星星电脑技术论老坛:[url]http://www.net666.cn/forum-143-1.html[/url] 江民今日提醒您注意:在今天的病毒中Trojan/PSW.OnlineGames.gen“网游窃贼”变种和Trojan/KillDisk.j“硬盘魔鬼”变种j值得关注。   病毒名称:Troja...

weixin_34247032的博客 169

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

CISSP/CCSP证书到手后别松懈!保姆级维持攻略:CPE积分怎么攒?年费怎么交?

本文为CISSP/CCSP持证者提供详细的维持认证攻略,重点介绍如何高效积累CPE积分和避免年费缴纳中的常见问题。通过免费与付费资源结合的策略,帮助持证者轻松完成年度认证要求,同时利用认证创造职业价值。

weixin_30859423的博客 416

从零开始编写一个上位机(串口助手)QT Creator + C++

提示:本博客作为学习笔记,有错误的地方希望指正,此文可能会比较长,作为学习笔记的积累,希望对来着有帮助。   绪论:笔者这里使用的是QTCreator和C++来实现一个简单的串口上位机的开发的简单过程,使用到C++,主要是为了后面使用Python开发上位机打下基础。这里主要分为初识C++的一些基本知识,其次是QT Creator的使用。特别声明感谢【北京迅为】嵌入式学习之QT学习篇的学习视频,这里的学习笔记就是根据视频中的内容实战记录下来的。 文章目录一、C++知识1、初识C++2、C++输入输出控制2.1

believe666的博客 4万+
上一篇: Oracle 数据库复制常用脚本
下一篇: 用VC++来设计ActiveX控件
wildcatbb
博客等级 码龄25年 0粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值