英创公司的ARM9嵌入式工控主板产品系列,均预装了正版WinCE5.0操作系统。微软的 WinCE实时多任务操作系统是嵌入式领域的主流操作系统之一,它包括了以TCP/IP为特色的完整网络通讯协议,以及相应的安全认证功能,来确保系统的安全性。从应用角度看,最常用的安全认证方法是当访问嵌入式设备时,需要提供用户名和密码。在本文中将以FTP Server的应用为例,主要介绍如何实现对于FTP Server、Web Server、Telnet等应用中用户名和密码的管理,包括添加,删除等操作。
在英创的ARM9嵌入式工控板系列产品中,出厂的缺省配置是没有启用用户名和密码认证功能的,FTP Server采用的登录方式为匿名登录,因此首先是需要修改相关这部分的注册表,关闭匿名登录以及打开使用认证功能,其修改后的注册表项如下:
[HKEY_LOCAL_MACHINE\COMM\FTPD]
'AllowAnonymous'=dword:0
'UseAuthentication'=dword:1
修改注册表的方法有两种,方法一是利用程序代码来进行修改,代码如下:
_tcscpy (szTemp, TEXT('Comm\\FTPD'));
hKey = NULL;
hRes = RegCreateKeyEx (HKEY_LOCAL_MACHINE, szTemp, 0, NULL,
REG_OPTION_NON_VOLATILE, 0, NULL,
&hKey, &dwDisp);
if (hKey != NULL)
{
dwSize = 0;
RegSetValueEx (hKey, TEXT('AllowAnonymous'), 0, REG_MULTI_SZ,
(const BYTE *)&dwSize, sizeof(DWORD));
dwSize = 1;
RegSetValueEx (hKey, TEXT('UseAuthentication'), 0, REG_MULTI_SZ,
(const BYTE *)&dwSize, sizeof(DWORD));
RegFlushKey( hKey );
}
if (hKey)
RegCloseKey (hKey);
方法二是利用在调试连接成功的前提下,在eVC下利用工具中Tools->Remote Registy Editor(WCE500)连接成功后,选择HKEY_LOCAL_MACHINE下的Comm–>FTPD中的参数进行修改,如下图所示:
注册表修改成功以后,然后就可直接调用相关的函数
BOOL NTLMSetUserInfo( LPTSTR pszUser, LPTSTR pszPassword );
来添加新的用户名和密码了,该函数定义在Ntlmssp.h 中。具体的设置代码如下:
_tcscpy( szUser, _T( 'Emtronix') );
_tcscpy( szPassword, _T( '86180660') );
bResult = NTLMSetUserInfo( szUser, szPassword );
在“Ntlmssp.h”中还包含了有关用户名、密码删除等API函数,用户可根据自身需求调用相关函数。
[查看全文]
[关于英创]
[更多文章]
[技术论坛]