繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> 一段ADSI和EXCHANGE结合的示范代码

一段ADSI和EXCHANGE结合的示范代码

2006-06-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:在独孤九剑兄的帮助下,完成了这段代码 包括NT用户的建立,EXCHANGE邮箱的建立,两者的结合,权限的设置 本代码在nt4.0+sp6+exchange5.5+adsi2.5下运行通过 建立以后的用户可以直接收发信件,是一个简化版本的WE...
关键字:示范 EXCHANGE 代码 ADSI

在独孤九剑兄的帮助下,完成了这段代码

包括NT用户的建立,EXCHANGE邮箱的建立,两者的结合,权限的设置

本代码在nt4.0+sp6+exchange5.5+adsi2.5下运行通过

建立以后的用户可以直接收发信件,是一个简化版本的WEB MAIL ACCESS

adsi_exchange.ASP

-----------------------------------------------------------------------

<%

Set sid = CreateObject("ADsSID")

Set sec = CreateObject("ADsSecurity")

Set ace = CreateObject("AccessControlEntry")

'----------------------------------------------------------------------------

'--- 如果没有安装ADSI2.5的安全库要手工定义以下参数

'-----------------------------------------------------------------------------

Const ADS_SID_HEXSTRING = 1

Const ADS_SID_WINNT_PATH = 5

Const ADS_RIGHT_EXCH_MODIFY_USER_ATT = &H2

Const ADS_RIGHT_EXCH_MAIL_SEND_AS = &H8

Const ADS_RIGHT_EXCH_MAIL_RECEIVE_AS = &H10

'-------------------------------------------------------

'-----创建邮箱步骤----------------------

'--------------------------------------------------------

'---- 基本信息

server1 = "114DOMAINSERVER"

Org = "114ONLINE"

Site = "EXCHANGE"

domain = "EXCHANGE"

userName = "liuoo"

password = "43444"

'--- 邮箱信息 -----

strDisplayName = "rtrtrt"

strFirstName = "gfgf"

strLastName = "fgfgfg"

strAlias = userName

strMTA = "cn=Microsoft MTA,cn=" & server1 & ",cn=Servers,cn=Configuration,ou=" & Site & ",o=" & Org

strMDB = "cn=Microsoft Private MDB,cn=" & server1 & ",cn=Servers,cn=Configuration,ou=" & Site & ",o=" & Org

strSMTPAddr = "ewwe@114online.com"

'------ 建立一个nt用户

Set dom = GetObject("WinNT://" & domain)

Set usr = dom.Create("user", userName)

'On Error Resume Next

usr.SetInfo

'If Err.Number <> 0 Then

' Response.Write "111"

' Response.Write Err.Description

' Response.End

'End If

usr.SetPassword password

'--- 创建邮箱

ADsPath = "LDAP://" + server1

ADsPath = ADsPath + "/cn=Recipients,OU="

ADsPath = ADsPath + Site

ADsPath = ADsPath + ",O="

ADsPath = ADsPath + Org

Set objCont = GetObject(ADsPath)

'Create a new MailBox

Set mailBox = objCont.Create("organizationalPerson", "cn=" & strAlias)

mailBox.Put "mailPreferenceOption", 0

mailBox.Put "givenName", strFirstName

mailBox.Put "sn", strLastName

mailBox.Put "cn", strDisplayName

mailBox.Put "uid", strAlias

mailBox.Put "Home-MTA", strMTA

mailBox.Put "Home-MDB", strMDB

mailBox.Put "mail", strSMTPAddr

mailBox.Put "MAPI-Recipient", True

mailBox.Put "rfc822Mailbox", strSMTPAddr

'--------------------------------------------------------

' 与nt用户联系

'---------------------------------------------------------

sid.SetAs ADS_SID_WINNT_PATH, "WinNT://" & domain & "/" & strAlias & ",user"

sidHex = sid.GetAs(ADS_SID_HEXSTRING)

mailBox.Put "Assoc-NT-Account", sidHex

' 完成设置

mailBox.SetInfo

'-------------------------------------------------

'更改安全设置

'-------------------------------------------------

Set sd = sec.GetSecurityDescriptor(mailBox.ADsPath)

Set dacl = sd.DiscretionaryAcl

ace.Trustee = domain & "\" & strAlias

ace.AccessMask = ADS_RIGHT_EXCH_MODIFY_USER_ATT Or ADS_RIGHT_EXCH_MAIL_SEND_AS Or ADS_RIGHT_EXCH_MAIL_RECEIVE_AS

ace.AceType = ADS_ACETYPE_ACCESS_ALLOWED

dacl.AddAce ace

sd.DiscretionaryAcl = dacl

sec.SetSecurityDescriptor sd

response.write "successful"

%>

------------------------------------------------------------------------

请注意权限的设置

责任编辑:admin
相关文章