前段时间写出一个程序,只是不完善,不能判断是否存在该用户,现在补充查找功能。
代码不足之处,希不吝指教!
完整代码如下:
<%@ Language=VBScript codepage="936"%>
<% Option Explicit %>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="GENERATOR" Content="Microsoft Visual Studio 7.0">
</HEAD>
<BODY>
<%
'程序目的:创建EXCHANGE 2000 邮箱用户
'程序实现方式:首先在AD(ACTIVE DIRECTORY:活动目录)中查找是否有该用
' 户,如果有则提示用户该名字已经存在,没有则创建该用户,
' 并为该用户创建邮箱。
'程序设计:skyword, skyword@21cn.com
'程序日期:2001-06-27
'需要注意的问题:程序使用中,应当关注LDAP的不同。并且程序的运行需要比
' 较主高的运行权限(我使用是管理员权限,呵呵比较不安全,
' 大家在实际使用中要注意,不然被人窃取了帐号不要怪我。
' 我也不太会设置),需要在IIS中设置(以前就是因为不了解
' ,走了不少弯路:) )
' 另外还有一种方案,查找用户可结合数据库查找,我想大家
' 会更熟悉一些,只是要记得在初始数据时,要把计算机内所
' 有的帐号都要记录进数据库,不然就不能准备判断是否该用
' 户,因为AD只判断是否有该用户,而不管该在什么位置,这
' 点大家要注意。
' 程序是中用到一些知识点均加以注释,希望对大家对所帮助
' 另外需要注意的是帐号名字不能小于2位,而且不能使用中文
' 名字.
Dim objUser
Dim objContainer
Dim objMailbox
Dim objMail
Dim recipname, recip
Dim ServerName, DomainName, emailname, FirstName, LastName, password
'判断用户是否存在
Dim strQuery, objConn, objRs, strResult
'查询语句:语法:要找什么,即查找基(<LDAP://DC=program,DC=org>);
'在目录的什么地方找(&(objectCategory=person)(sAMAccountName=用户
'名))(用户为?的用户;找到对象的属性(sAMAccount,ADsPath)(用户名,
'LDAP地址);查找的范围(subTree:查找搜索基以下的整个子树中)。例句
'就是下面这句.
'具体细节请参看《ASP3高级编程》P644,机械工业出版社(好象精华区内
'有这本书的电子文档,这本本书真的不错,值得购买)
strQuery = "<LDAP://DC=program,DC=org>;(&(objectCategory=person)" & _
"(sAMAccountName=" & Request.Form ("txtUserName") & "));" & _
"sAMAccountName,ADsPath;subTree"
'打开ADSI
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
'下面这句是用合法用户打开,不然查找的结果有误,本例中使用管理员帐号
objConn.Open "Active Directory Provider","CN=Administrator, CN=users, DC=program, DC=org","skyword"
'查找用户是否存在,不存在则创建用户
Set objRs = Server.CreateObject ("ADODB.Recordset")
objRs.Open strQuery, objConn
if not objRs.EOF then
strResult = False
Response.Write "用户已经存在"
else
'创建用户
strResult = True
End if
objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing
If strResult = True Then
'创建用户的代码
'ServerName,DomainName是ADSI需要的LDAP信息,是必需的。
ServerName = "skyword.program.org"
DomainName = "DC=program,DC=org"
emailname = Request.Form ("txtUserName")
password = Request.Form ("txtPassword")
recip = "CN=" & emailname
'下面这语个IF语句没多少价值。 :)
if Request.Form ("txtTruename") <> "" then
LastName = "sky"
FirstName = "Word"
else
LastName = "Last"
FirstName = "Name"
end if
'打开对象
Set objContainer = GetObject("LDAP://" & ServerName & "/OU=China.org," & DomainName)
'创建帐号
Set objUser = objContainer.Create("User", recip)
objUser.Put "samAccountName", emailname '帐号
objUser.Put "sn", LastName
objUser.Put "givenName", FirstName
objUser.Put "DisplayName", emailname '& "@hina.org" '显示的名字
objUser.Put "mail", emailname & "@China.org"
objUser.Put "userPrincipalName", emailname & "@China.org" '用户登录帐号
objUser.SetInfo '写进AD中
objUser.SetPassword password '用户密码
objUser.AccountDisabled = False '帐号生效
objUser.SetInfo '写进AD,一定要,为什么我也不清楚
'创建邮箱
Set objMailbox = objUser
'下面的LDAP是查出来的,安装不同,LDAP会有所不同。
objMailbox.CreateMailbox "LDAP://skyword.program.org/" & _
"CN=Mailbox Store (SKYWORD),CN=First Storage Group," & _
"CN=InformationStore,CN=SKYWORD,CN=Servers," & _
"CN=First Administrative Group,CN=Administrative Groups," & _
"CN=ecitye,CN=Microsoft Exchange,CN=Services," & _
"CN=Configuration,DC=program,DC=org"
objUser.SetInfo
Set objContainer = Nothing
Set objUser = Nothing
Set objMailbox = Nothing
'下面是简单的错误处理。
if err <> 0 then
Response.Write "创建用户失败!请重试一次<br>"
Response.Write "<input type='button' value='重试一次' onclick='vbscript:history.back()'> "
Response.Write "<input type='button' value='返回' onclick='vbscript:window.location.href=index.html'>"
else
'以下是简单的测试
Set objMail = Server.CreateObject ("CDONTS.NewMail")
objMail.Send "Admins@china.org", emailname & "@china.org", "Welcome", "Welcome use China.org Mail"
set objMail = Nothing
Response.Write emailname & "用户已经成功创建!!!!" & "<br>三秒后导向登录页!"
Response.AddHeader "refresh","3;url=http://mail.china.org"
end if
End If
%>
</BODY>
</HTML>
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |