【发布时间】:2010-04-29 12:59:33
【问题描述】:
我编写了一个用户管理器脚本,使用NTLMSetUserInfo 设置一些用户的密码,包括ADMIN... 我注意到,如果我这样做,用户名/密码组合适用于所有场景例如 Telnet、HTTP Auth 等,但不是文件浏览。
经过进一步检查,我注意到通过内置 CE 配置网页设置管理员密码时,它可以正常工作。
当我使用 NTLMSetUserInfo 时,Admin 的注册表看起来像这样
NT = [hex value]
当我通过 CE 网页设置管理员密码时,管理员的注册表包含一个额外字段 Password。
NT = [hex value]
Password = [hex value]
我认为NTLMSetUserInfo 没有正确设置管理员的全局 CE 密码,因此无法在框上进行文件浏览。
我在 CE Web 代码解析 DLL 中找到了以下函数,该函数称为 SetPassword。我编写了一个单独的函数来处理管理案例,但我无法编译它。这是它的一个sn-p
#include <windbase.h>
bool UserAccounts::SetAdminPassword(const std::string &passwordOld, const std::string &password)
{
wchar_t wpass[512];
wchar_t wpassold[512];
mbstowcs(wpass, password.c_str(), 512);
mbstowcs(wpassold, passwordOld.c_str(), 512);
return SetPassword(wpassold, wpass) == TRUE;
}
这不会编译说明'SetPassword': identifier not found。我注意到CE documentation for SetPassword 有以下行
要使用此功能,您必须包含 密码组件 Fspass 在 你的 Cesysgen.bat 文件。
我不确定这意味着什么,因为我对 PlatformBuilder 等还是很陌生...
谁能帮助我或指出正确的方向?
【问题讨论】:
标签: authentication passwords windows-ce platform-builder