自己做RAS Administration DLL

原创 2006年05月17日 17:12:00
本文其他部分是MSDN的内容,我自己的心得在这里:
  • MprAdminInitializeDll这个函数的原型,VS2003自带的MSDN里,被定义为无返回值(void),如果按照这个原型去做,会死得很难看。正确的原型是在线MSDN中定义的返回一个DWORD型(NOERROR表示成功)
  • MprAdminAcceptNewConnection提供的用户IP,其实是虚网地址,而不是它真正的IP地址,所以,用处不大(无法根据一个IP来判断用户是否合法)。
  • 如果想用MprAdminServerConnect取得RAS句柄,不能在MprAdminInitializeDll等函数中调用,因为此时RAS尚未成功启动,会返回RPC_S_UNKNOWN_IF,而在其他事件里调用,好象会造成死锁,所以,我的作法是,在MprAdminInitializeDll里启动一个线程,每秒钟尝试一次,直到成功取得为止。通常我会用QueueUserWorkItem这个API来做这个事情。
RAS是指Remote Access Service,而RAS Administration DLL是指用户自己写的一个动态链接库,它实现了规定的几个函数,由RAS来加载,当有用户连入或断开时,RAS会自动调用这些函数,使得我们可以实现一些附加的需求,比方说可以由自己来决定是否允许一个用户连入,或者在连入和断开的时候记录日志,还可以给用户指定(虚网的)IP:
要让RAS知道我们自己编写的DLL在哪里,必须在注册表中创建名为 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/RAS/AdminDll 的键,然后在该键下创建两个字符串型的值:
名称 示例
DisplayName 自定义显示名称,可以任意指定。 无于声处听惊雷
DLLPath DLL的路径全名,多个DLL名之间用逗号分开(但Windows 2000 Server是不支持多个DLL的,目前仅2003支持) c:/foo/bar.dll

DLL中必须至少实现并export下列四个函数,否则RAS启动会失败:

而在Windows 2000 Server中,DLL还必须实现 MprAdminGetIpAddressForUser 和 MprAdminReleaseIpAddress 这两个函数。

WinCE 下 RAS 拨号连接的建立和拨号过程

在 CE 下如果系统没有建立拨号网络,要实现上网功能时,就需要通过代码来实现建立拨号网络、拨号实现上网的过程。 以下代码中的参数和拨号所用数值,都是电信 EVDO 的配置。如果换 GSM 或 WCDM...

RAS函数

RasDial概述  本函数建立RAS 客户端和服务器端的一个连接。这个连接包括和返回用户验证信息。   函数原型:   DWORD RasDial(   LPRASDIALEXTE...

非对称加密到底有哪些用途(RAS实现)

非对称加密到底有哪些用途? 第一个用途当然是做数据加密。     请大家想象一下,如果我不想让除了接收方以外的其他人,知道我发送的数据的内容的话,需要用哪种密钥对数据进行加密?如果我使用私...

WinCe系统3G和RAS拨号 - 基于 .NET Compact Framework和C++

 在.NET Compact Framework下开发3G应用可以有两个options,1:AT command, 2:RAS。其实RAS最终也是通过AT command来管理3G设备,RAS屏蔽了技...

RAS 加密解密

RAS 加密解密概念 RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当...

ras自动断网联网

#!coding: cp936 import win32ras import time,os def Connect(dialname, account, passwd): dia...
  • thundor
  • thundor
  • 2012年07月18日 09:12
  • 870

PHP-RAS加解密示例

PHP-RAS加解密示例

WINCE下的RAS拨号连接

WINCE WM coredll rasdial GPRS拨号 C#源码

C# MD5.DES,RAS加密解密源码

  • 2015年06月13日 11:55
  • 153KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自己做RAS Administration DLL
举报原因:
原因补充:

(最多只允许输入30个字)