分享
 
 
 

MS Exchange 5.5 环境中的 Active Directory 服务接口

王朝other·作者佚名  2008-05-30
窄屏简体版  字體: |||超大  

有了 Active Directory 服务接口 (ADSI),就可以使用 Microsoft Visual Basic 编程系统、Java、C 或 Visual C++ 开发系统等高级工具方便地创建支持目录的应用程序,而无须担心不同目录实现或命名空间的潜在差异。即您可以生成应用程序,通过一个点访问网络环境中的多个目录,无论这些目录是基于 LDAP、NDS 还是 NTDS。 Microsoft%26reg; Exchange 5.5 是可扩展的、可靠且安全的消息传递平台。Microsoft Exchange 5.5 目录服务支持轻型目录访问协议 (LDAP) 第三版。可以将 ADSI 与 LDAP 提供程序一起使用,处理 Microsoft Exchange 5.5 目录中的任何对象。管理员和开发人员使用这一功能以及协作数据对象 (CDO),可以高效率地编写功能强大的协作应用程序或管理工具。CDO 以前被称为 Active Messaging,它提供处理消息和日历对象的对象接口以及提交和检索此类对象。 本文有助于应用程序开发人员使用 Exchange 5.5 目录服务上的 ADSI,编写支持目录的应用程序。 ADSI 和 LDAP ADSI 为目录对象提供 COM 接口。ADSI 建立在基于提供程序的模型之上,在提供程序映射基础目录系统和 ADSI 客户端显现的 COM 接口的同时,客户端与 ADSI 所显现的 COM 接口进行交互。在 NDS 目录中创建或更改用户的 ADSI 应用程序,可用于在 Exchange 5.5 目录中创建用户。另一方面,LDAP 是用于目录访问的有线协议。所以,LDAP 应用程序仅限访问显现 LDAP 协议的目录。 既然 ADSI 是一组 COM 对象,因此可方便地用于 VB 或 Java 脚本,使基于 Web 的应用程序支持目录。而使用基于‘C’的 LDAP API 完成这一操作就要困难得多。 ADSI 和 ADO ADO 用于在目录中执行搜索,并以表格形式给出结果。另一方面,ADSI 用于更改目录中的项。通常,使用 ADO 搜索一个或多个对象,然后在结果集中反复查找,并更改所指定的对象。在下面的示例中给出了 ADSI 和 ADO 的用法。 Microsoft Exchange 目录架构 为了编写在 Exchange 目录上使用 ADSI 的应用程序,必须对目录架构有一定的了解。该架构定义了目录中的对象类、对象类之间的关系、每个对象类的属性以及属性和类的特性。使用 Exchange Administration 程序,您可以查看 Exchange 目录架构。若要执行此操作: 在 RAW 模式下运行 Exchange Admin (admin /r)。 从菜单上选择“View.Raw Directory”。 从左窗口中选择“Schema”。 从右窗口双击代表相关属性或对象类的对象。 在 ADSI 支持中有以下三个重要的属性: Heuristic Heuristic 属性的解释如下: 第 0 位

0:在站点间复制

1:不在站点间复制

第 1 位

0:属性对于 LDAP 不可见

1:属性对于匿名的和已验证的 LDAP 客户端可见

第 2 位

0:已验证的客户不能访问属性

1:已验证的客户可以访问属性(但匿名客户不可以)

第 3 位

0:属性不是操作属性

1:属性是操作属性

第 4 位

0:属性在 Admin UI 中不可见(DS Site Configuration 对象的属性页)

1:属性在 Admin UI 中可见(DS Site Configuration 对象的属性页)

查看 Heuristic 值,就可以确定特定属性是否可见。例如,Heuristic 值为 3 说明该属性不能在站点间复制,且对于匿名 LDAP 客户可见。 Heuristic 值为 11 说明该属性为操作属性,且对于已验证的 LDAP 客户端可见。操作属性(设置了 Heuristic 位 3 的属性)对 ADSI 不可见,即使可以设置其值,也是如此。要获得操作属性的值,必须使用 ADO 查询,如下例所示。注意:更改 Heuristic 属性位 0 的值,可能会使目录复制停止。不应更改某一属性的 Heuristic 特性的这一位。 ACL: ACL 属性决定了用户更改属性所需的权限。ACL 属性值的定义如下: 0:只有系统可以更改该属性 1:有更改管理权限的用户可以更改该属性 2:有更改用户权限的用户可以更改该属性 3:有更改许可权限的用户可以更改该属性 说明 说明确定了属性或类的 LDAP 名称。 注意 更改 LDAP 名称将出现互操作性问题。 常用对象类 下面给出了常用对象类及其最重要的属性。下表中的列解释如下: LDAP 名称:通过 LDAP 显现的属性名称(Exchange 架构中对该属性的说明) Exchange 名称:在 Exchange 架构中该属性的名称 Mandatory:对象的属性是强制的还是非强制的 Heuristic:属性的 heuristic 值,如上所述。 ACL:属性的访问类别如上所示。 语法:属性的语法。 Boolean:布尔型语法的属性的值为 TRUE 或 FALSE Integer:任何整数值 String(Unicode):Unicode 字符串 String(Numeric):数字字符串 String(Octet):二进制字符串。根据 LDAP,使用二进制表示的字符串编码,支持二进制属性。 Object(DS-DN):采用 rfc1779 格式的 DN(如cn=jsmith,ou=redmond,o=microsoft,c=us) 注释:关于该属性的注释。 Mail-Recipient(个人)对象类 Mail-Recipient 对象类通过 LDAP 显现为‘个人’对象类。该对象类可由邮件能发送到的所有对象类继承,例如邮箱、自定义收件人、通讯组和公用文件夹。值得指出的是该对象类是抽象的。所以您不能创建该对象类的实例。定义它只是为了让目录中的其它对象类继承其属性。下表给出了‘个人’对象类上常用的属性: Exchange 名称

Mandatory

Heuristic

ACL

语法

注释

Common-Name

Y

2

1

String(Teletex)

公用名称(该对象的 RDN)

Display Name

N

2

1

String(Unicode)

地址簿所显示的字符串

Language-ISO639

N

3

2

String(Unicode)

ISO639 语言

LabeledURI

N

5

2

String(Unicode)

指定默认 HTML Web 页的 URL

Voice-Mail-

Recorded-Name

N

13

2

String(Octet)

语音邮件用户的别名

Voice-Mail-

Password

N

13

2

String(Unicode)

代表用户帐户安全代码的 DTMF 数字

Voice-Mail-

Greetings

N

13

2

String(Unicode)

语音邮件用户所录制的问候语

Voice-Mail-

User-ID

N

13

2

String(Unicode)

代表用户帐户的 DTMF 数字(如电话分机)

MAPI-Recipient

N

18

1

Boolean

向网关表明其是不是 MAPI 收件人(True=是,False=否)

Proxy-Addresses

N

18

1

String(Teletex)

该收件人的外部邮件系统的地址列表。该属性按如下方式显现:主 SMTP 地址 - 邮件主 X.400 地址 - textEncodedORAddress 其它地址 - otherMailbox

Display-Name-

Printable

N

18

1

String(Printable)

此‘显示名称’的可打印字符串版本。

Mail-nickname

N

18

1

String(Unicode)

邮件昵称

Comment

N

18

2

String(Unicode)

该收件人在 Exchange 地址簿中的注释。

WWW-Home-

Page

N

18

2

String(Unicode)

与该项相关的 WWW 主页

X509-Cert

N

18

2

String(Octet)

用户的 X.509 v3 证书

Extension-

Attribute-9

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-1

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-10

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-2

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-3

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-4

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-5

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension -

Attribute -6

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-7

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-8

N

20

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-15

N

21

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-11

N

21

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-12

N

21

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute-14

N

21

1

String(Unicode)

供客户使用的通用扩展属性

Extension-

Attribute- 13

N

21

1

String(Unicode)

供客户使用的通用扩展属性

Mailbox (organizationalPerson) Object Class Mailbox 对象类通过 LDAP 显现为 organizationaPerson 对象类。该对象类代表在 Microsoft Exchange 系统中包含邮件存储的一个对象。Mailbox 对象的一个关键属性是 Assoc-NT-Account,它包含对该邮箱有访问权限的 NT 帐户的安全标识符 (SID)。 LDAP 名称

Exchange 名称

Mandatory

Heuristic

ACL

语法

注释

mail Preference Option

Delivery-

Mechanism

Y

4

1

Integer

该邮箱接收邮件所使用的机制。该属性应设置为 0。

personal Title

Personal-

Title

N

3

2

String (Unicode)

称呼(先生、夫人等)

Assoc- NT-

Account

Assoc- NT-

Account

N

12

1

String (Octet)

与该邮箱相关的主 NT 帐户

street

Street-

Address

N

12

1

String (Unicode)

实际街道地址

generation Qualifier

Generation-

Qualifier

N

13

1

String (Unicode)

代限制符,例如老、小、第四代等

house Identifier

House- Identifier

N

13

1

String (Unicode)

位于某个地点的建筑物

Company

Company

N

18

1

String( Unicode)

邮箱所有人所在的公司

department

Department

N

18

1

String(Unicode)

该收件人所在的部门。

givenName

Given-Name

N

18

1

String (Unicode)

指定邮箱所有人的名

international ISDNNumber

International ISDN Number

N

18

1

String (Numeric)

与该邮箱相关的 ISDN 号码

manager

Manager

N

18

1

Object (DS-DN)

该收件人的‘管理员’。

physical Delivery OfficeName

Office

N

18

1

String (Unicode)

例如 1/1061

sn

Last Name

N

18

1

String (Unicode)

指定邮箱所有人的姓

st

State Or Province Name

N

18

1

String (Unicode)

用户所在的州或省

teletex Terminal Identifier

Teletex Terminal-

Identifier

N

18

1

String (Octet)

title

Title

N

18

1

String (Unicode)

邮箱所有人的职务

X121-

Address

N

18

1

String (Numeric)

x121 地址

Telephone-

Office2

N

18

2

String (Unicode)

邮箱所有人的办公室电话号码 (2)

co

Text- Country

N

18

2

String (Unicode)

用户所在的国家/地区

facsimile Telephone Number

Telephone-

Fax

N

18

2

String (Unicode)

邮箱所有人的传真号码

homephone

Home phone number

N

18

2

String (Unicode)

邮箱所有人的家庭电话号码

initials

Initials

N

18

2

String (Unicode)

用户名称的缩写

l

City

N

18

2

String (Unicode)

用户所在的位置/城市

mobile

Mobile number

N

18

2

String (Unicode)

邮箱所有人的移动电话号码

pager

Pager number

N

18

2

String (Unicode)

邮箱所有人的呼机号码

postal Address

Address

N

18

2

String (Unicode)

邮箱所有人的街道地址

postal Code

Postal code

N

18

2

String (Unicode)

邮政编码

secretary

Assistant

N

18

2

String (Unicode)

邮箱助理显示名称

telephone Number

Phone number

N

18

2

String (Unicode)

邮箱所有人的办公室电话号码 (1)

telex Number

Telex Number

N

18

2

String(Octet)

employee Number

Employee Number

N

21

1

String (Unicode)

职员编号

employee Type

Employee Type

N

21

1

String (Unicode)

职员类型

homeFax

Telephone Home- Fax

N

21

2

String (Unicode)

家庭传真号码

home Postal Address

Address Home

N

21

2

String (Unicode)

家庭住址

personal Mobile

Telephone Personal-

Mobile

N

21

2

String (Unicode) 手机号码

personal Pager

Telephone Personal Pager

N

21

2

String (Unicode)

呼机号码

Custom-Recipient(自定义收件人) Custom-Recipient 对象类通过 LDAP 显现为 custom-recipient 对象类。该对象类包含上述 organizationalPerson 对象类中除 mailPreferenceOption 之外的所有属性。Custom-Recipient 对象类还包含一个额外的、带有下列特性的强制属性: LDAP 名称

Exchange 名称

Mandatory

Heuristic

ACL

语法

注释

Target Address

E-Mail Address

Y

18

1

String (Unicode)

收件人的实际地址(该地址的格式为 : ,如 SMTP :jsmith@org. com

Distribution-List Distribution-List 对象类通过 LDAP 显现为 groupOfNames 对象类。其属性为: LDAP 名称

Exchange 名称

Mandatory

Heuristic

ACL

语法

注释

Company

Company

FALSE

18

1

String (Unicode)

主要用于 AB 视图分组

department

Department

FALSE

18

1

String (Unicode)

主要用于 AB 视图分组

physical Delivery Office Name

office

FALSE

18

1

String (Unicode)

主要用于 AB 视图分组

st

State-Or-

Province-

Name

FALSE

18

1

String (Unicode)

主要用于 AB 视图分组

title

Title

FALSE

18

1

String (Unicode)

主要用于 AB 视图分组

co

Text-Country

FALSE

18

2

String (Unicode)

主要用于 AB 视图分组

l

City

FALSE

18

2

String (Unicode)

主要用于 AB 视图分组

Hide-DL-

Membership

Hide- DL-

Membership

FALSE

20

1

Boolean

指出成员资格是否应对客户隐藏(默认值为 FALSE)。

owner

Owner

FALSE

20

1

Object(DS-DN)

拥有该通讯组的邮箱 DN。

member

Members

FALSE

20

2

Object(OR-Name)

通讯组成员的 DN 列表

通过 ADSI 检索增量更改 在某些应用程序(如目录同步服务)中,从 Exchange 目录获得增量更改是非常重要的。通过查找 Exchange 目录上每个对象的下列操作属性,就可实现这一目的。 USN-Changed:每次更改对象时,Exchange 目录将该整数加 1(删除与对该对象的任何其它更改一样对待);USN-Created:该整数表明在 Exchange 目录中创建此对象的时间。When-Changed:更改对象的 UTC 时间;When-Created:创建对象的 UTC 时间 通过查询 USN-Changed/Created 或 When-Changed/Created,应用程序可获得自上次轮询更改以来,在 Exchange 目录中所做的更改。 任何已验证的用户均可使用这些属性。 通过 ADSI 检索已删除的对象 检索已删除对象的功能与从 Exchange 目录检索增量更改一样重要。使用明文验证,并将“,cn=admin”附加到用户 DN 的后面(如 dc=domain,cn=jsmith,cn=admin),即可实现该操作。 将“,cn=admin”加到用户 DN 中,并对 Exchange Directory 验证客户时,就能查询称为“is-deleted”的操作属性。该属性是布尔型属性,它表明该对象是否已被删除。已删除对象被称为“逻辑删除”。逻辑删除保存的时间由 Microsoft Exchange Admin 程序中 DS Site Configuration 属性页上“Tombstone lifetime”参数给出。默认情况下,“Tombstone lifetime”设置为 30 天。如果应用程序从 Exchange Directory 获得删除的内容,则确保其在“Tombstone lifetime”期限内运行。 ADSI 示例 本节包含几个 ADSI 示例,它们给出了对 Exchange 目录的验证,查找使用 ADO 的对象,并处理使用 ADSI 的对象。 通讯组管理器 下面的代码将创建一个通讯组,并将 ADO 查询所找到的用户加入到通讯组中: 显式选项 Dim strDisplayName

' DL's Display name

Dim strAliasName

' DL's Alias name

Dim strDirectoryName

' DL's Directory name

Dim strUserName

' User's logon name and domain

Dim strPassword

' User's domain password

Dim strServer

' Exchange server name

Dim strOrganization

' Exchange Organization

Dim strSite

' Exchange SiteDim str

RecipientsPath

' ADsPath to the Recipients Container

Dim strMSPrivMDBPath

' ADsPath to the MS Private MDB

Dim objRecipients

' Recipients Container object

Dim objMSPrivMDB

' MS Private MDB object

Dim objNewDL

' new distribution list object

Dim strMail

' mail address of the MS Private MDB object

Dim intPos

' numeric position of the '@' in an SMTP address

Dim strSMTPExt

' SMTP domain type (ie. com, org, etc...)

Dim strSMTPAddr

' new DL's SMTP address

Dim aOtherMailbox(1)

' other addresses created (ie. MSMail, CCMail)

Dim strx400Addr

' new DL's X400 address

Dim objMyIADs

' ADSI object

' used by the PutEx method to set a muti-valued property

Const ADS_PROPERTY_UPDATE = 2

strDisplayName = "BellevueDL"

strAliasName = "BellevueDL"

strDirectoryName = "BellevueDL"

strUserName = "dc=redmond, cn=v-sparke"

strPassword = "password"

strServer = "sparker1"

strOrganization = "16"

strSite = "3081"

Set objMyIADs = GetObject("LDAP:")

下列代码确定了域地址的扩展名,方法是查找 Microsoft Private MDB 对象的“mail”属性: strMSPrivMDBPath = "LDAP://" + strServer + "/cn=Microsoft Private MDB,cn=" + strServer + ",cn=Servers ,cn=Configuration,ou=" + strSite + ",o=" + strOrganization

此应用程序使用‘OpenDSObject’方法访问目录对象。用户的登录域、名称和密码以参数的形式传递。值为 0 表示 ADSI LDAP 提供程序将进行简单的绑定: Set objMSPrivMDB = objMyIADs.OpenDSObject(strMSPrivMDBPath, strUserName, strPassword, 0)

objMSPrivMDB.GetInfo

strMail = objMSPrivMDB.Get("mail")

intPos = InStr(strMail, "@")

strSMTPExt = Mid(strMail, intPos, Len(strMail))

下列代码生成 SMTP、MSMAIL、CCMAIL 和 X400 地址。‘US’被硬编码到 X400 地址中。可以解析 MS Private MDB 对象的‘textEncodedORaddress’属性,以确定正确的 X400‘寻址’方案: strSMTPAddr = replace(strAliasName, " ", "") + strSMTPExt

aOtherMailbox(0) = CStr("MS$" + strOrganization + "/" + strSite + "/" + strAliasName)

aOtherMailbox(1) = CStr("CCMAIL$" + strAliasName + " at " + strSite)

strx400Addr = "c=US;a= ;p=" + strOrganization + ";o=" + strSite + ";s=" + strAliasName + ";"

strRecipientsPath = "LDAP://" + strServer + "/cn=Recipients,ou=" + strSite + ",o=" + strOrganization

Set objRecipients = objMyIADs.OpenDSObject(strRecipientsPath, strUserName, strPassword, 0)

本代码创建通讯组: Set objNewDL = objRecipients.Create("groupOfNames", "cn=" + strDirectoryName)

注意,在 VBScript 中,必须使用 CStr() 字符串值正确地设置 ADSI 数据的格式: objNewDL.Put "cn", CStr(strDisplayName)

objNewDL.Put "uid", CStr(strAliasName)

objNewDL.Put "distinguishedName", CStr("cn=" + strAliasName + ",cn=Recipients,ou=" + strSite + ",o=" + strOrganization)

objNewDL.Put "mail", CStr(strSMTPAddr)

本代码创建多值属性。在 VBScript 中,必须使用括号取消对数组的引用: objNewDL.PutEx ADS_PROPERTY_UPDATE, "otherMailbox", (aOtherMailbox)

objNewDL.Put "Report-To-Originator", True

objNewDL.Put "Report-to-Owner", False

objNewDL.Put "Replication-Sensitivity", CInt(20)

objNewDL.Put "rfc822Mailbox", CStr(strSMTPAddr)

objNewDL.Put "textEncodedORaddress", CStr(strx400Addr)

objNewDL.SetInfo

Response.Write "DL Created Successfully!

"

下列代码将在 Exchange 目录服务中查找其‘City’属性与搜索条件匹配的邮箱。‘City’属性的 ADSI LDAP 名称是‘l’。 Dim objADOconn' ADO connection objectDim strADOQueryString' ADO query stringDim objRS ' recordset objectDim strCriteria ' value used to search the directory treestrCriteria = "Bellevue"

Set objADOconn = CreateObject("ADODB.Connection")

objADOconn.Provider = "ADSDSOObject"

objADOconn.Open "ADs Provider"

strADOQueryString = ";(%26amp;(objectClass=organizationalPerson)(l=" + strCriteria + "));cn,adspath;subtree"

Set objRS = objADOconn.Execute(strADOQueryString)

If Not objRS.EOF Then

While Not objRS.EOF

objNewDL.Add objRS.Fields(1).Value

Response.Write objRS.Fields(0) + " added :)

"

objRS.MoveNext

Wend

Else

Response.Write "No mailboxes were added to the DL :(

"

End If

objRS.Close

Phone List

本代码将更改邮箱的电话号码属性。默认情况下,所有用户都有更改其邮箱上该属性的权限。 下列代码将使浏览器弹出用户标识对话框。IIS 服务器的密码验证只能设置为‘Allow Anonymous’和‘Basic (Clear Text)’。这样,浏览器在使用‘GetObject’方法时,就能使用正确的安全上下文。 Dim strAT ' Authorization Type information

strAT = Request.ServerVariables("AUTH_TYPE")

If InStr(1, "_BasicNTLM", strAT, 1)

Response.Buffer = True

Response.Status = ("401 Unauthorized")

Response.End

End If

Dim strMailboxPath' ADsPath to the user's mailboxDim strServer' name of the Exchange 5.5 serverDim intPosPrefix' numeric index used used to build ADsPath to schema objectDim intPosSuffix' numeric index used used to build ADsPath to schema objectDim strPrefix' prefix string used to build ADsPath to schema objectDim strSuffix' suffix string used to build ADsPath to schema objectDim strPathToSchemaObject' ADsPath to the schema objectDim objMailbox' mailbox objectDim strNewPoneNumber' value of the new phone number

Function isUserEditable(strSchemaObjectPath)

Dim objSchemaObject' schema objectDim intValue' value of the 'Access-Category' propertySet objSchemaObject = GetObject(strSchemaObjectPath)intValue = objSchemaObject.Get("Access-Category")If intValue = 2 Then' user may modify the mailbox propertyisUserEditable = TrueElse' the value was 0, 1, or 3 isUserEditable = False

End If

End Function

本过程将更改包含字符串数值的对象属性。要将属性设置为空字符串,必须将其从对象中删除: Sub ModifyProperty(strNewValue, strADsProperty)

On Error Resume Next

If Len(strNewValue) 0 Then

objMailbox.Put strADsProperty, CStr(strNewValue)

Else ' The new value is empty

objIADs.Get (strADsProperty)

'If the property doesn't exist on the object, an error will be generated using the Get method:

If Err.Number = 0 Then' the property exists on the object and must be removed objMailbox.PutEx ADS_PROPERTY_CLEAR, strADsProperty, CStr(" ")

End If

Err.Clear

End If

End Sub

Const ADS_PROPERTY_CLEAR = 1' used by the PutEx method to clear a property from an objectstrMailboxPath = "LDAP://SPARKER1/cn=SParker,cn=Recipients,ou=3081,o=16"

strServer = "sparker1"

strNewPoneNumber = "(425) 882-8080 x 13882"

intPosPrefix = InStr(strMailboxPath, "/cn")

intPosSuffix = InStr(strMailboxPath, "ou")

strPrefix = Mid(strMailboxPath, 1, intPosPrefix - 1) + "/cn="

strSuffix = ",cn=Microsoft DMD," + Mid(strMailboxPath, intPosSuffix, Len(strMailboxPath))

strPathToSchemaObject = strPrefix + "Telephone-Office1" + strSuffix

If isUserEditable(strPathToSchemaObject) Then

Set objMailbox = GetObject(strMailboxPath)

ModifyProperty strNewPoneNumber, "telephoneNumber"

objMailbox.SetInfo ' save the object information

Response.Write "Phone number modified successfully :)

"

Else

Response.Write "You don't have permissions to modify your phone number :(

"

End If

%

ADSI 的局限 ADSI 尚不能处理访问控制列表 (ACL),后者包含有关哪个用户有某个对象权限的安全信息。它不能获取 Windows NT 安全标识符 (SID),SID 是用户帐户名的二进制表示,因而无法设置创建用户权限所需的位。开发人员无法只通过 ADSI 创建实用的邮箱对象,这是因为邮箱对象要求在 Assoc-NT-Account 属性中设置 NT 帐户 SID,以及在 NT-Security-Descriptor 属性中设置邮箱对象的正确安全权限。预计在以后的版本中会提供处理 ACL 的功能。 使用 ADSI 增强 Exchange 有了 ADSI,开发人员无须再开发目录专用的 API,使管理功能更灵活、更方便。例如,目录专用的 API 可能要求管理员在 Active Server 页上键入安全密码和域,从而将其暴露在危险之中。与此相反,ADSI 对象强制 Web 浏览器提示管理员输入这些信息。 一旦开发人员学会了 ADSI 规则,则可以方便地编写 LDAP 路径名,并指定对象的类和属性。Exchange 5.5 将弹出一个 ADSI 页,允许开发人员在相应的 Exchange Server 中键入,将其从注册表中抽出,并添加到服务器字段中。使用 ADSI 对象,他们可以开发各种使用方便的应用程序。例如,开发人员可以编写 Web 服务器脚本,允许浏览器查找不同目录中用户的详细情况; 或者创建通讯组管理器,后者在不同目录中创建用户的通讯组。或者指定打印机队列的访问特权。正是由于 ADSI 灵活多变的特点,它可获得广泛的应用。 结论 ADSI 旨在为不同种类的目录服务提供一个一致的、开放的接口集,它为当今迅猛发展的企业网络和 Intranet 打下了非常重要的基础。另外,Exchange 管理员和开发人员还可使用它编写应用程序;将基于 Exchange 目录访问编程接口 (DAPI) 的应用程序移植到 ADSI。这些应用程序将在 Exchange 5.5 环境下运行;稍作更改甚至不经更改就可以在 NT 5 Active Directory 上运行。因此,Exchange 开发人员和管理员在有效地开发支持目录的应用程序的同时,可以更方便地与更改保持同步。 其它信息 有关详细信息,请访问下列 Web 站点: ftp://ds.internic.net/internet - 草案 - 包括 LDAPV3 协议的 Internet 草案 http://www.microsoft.com/ntserver - ADSI 和 NT 5 Active Directory http://www.microsoft.com/msdn - 用于开发人员的 Microsoft 技术大全 %26copy; 1998 Microsoft 和/或其提供商。版权所有。使用条款。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有