IAzAuthorizationStore::Initialize 方法 (azroles.h)

Initialize 方法初始化授权管理器。

语法

HRESULT Initialize(
  [in]           LONG    lFlags,
  [in]           BSTR    bstrPolicyURL,
  [in, optional] VARIANT varReserved
);

参数

[in] lFlags

控制初始化行为的标志。 此参数的取值可为下列值之一:

含义
0 (0x0)
授权存储打开供 Update 方法和 AccessCheck 方法使用。
AZ_AZSTORE_FLAG_AUDIT_IS_CRITICAL
8 (0x8)
调用应用程序需要具有SE_AUDIT_PRIVILEGE;如果应用程序没有审核特权,则 Initialize 方法将失败。
AZ_AZSTORE_FLAG_BATCH_UPDATE
4 (0x4)
通知提供程序将修改或创建许多对象。 然后,提供程序优化更改的提交以提高性能。 仅当 同时更新 AzAuthorizationStore 对象的多个子对象时(例如在安装期间或受控的批处理更新期间),才使用此标志。
AZ_AZSTORE_FLAG_CREATE
1 (0x1)
系统尝试创建 由 bstrPolicyURL 参数指定的策略存储。
AZ_AZSTORE_FLAG_MANAGE_STORE_ONLY
2 (0x2)
为管理目的打开了现有存储区。 无法执行运行时例程。
 

如果指定了AZ_AZSTORE_FLAG_CREATE标志:

  • 系统将尝试创建 由 bstrPolicyURL 参数指定的基础策略存储。
  • 如果指定的策略存储存在, 则 Initialize 方法将失败并ERROR_ALREADY_EXISTS。
  • 必须调用 Submit 方法才能保留此方法所做的任何更改。
  • 在调用 Submit 方法之前,UpdateCache 方法将失败。 调用 Submit 时,实际上会创建基础策略存储区。
如果未指定AZ_AZSTORE_FLAG_CREATE标志,则系统预期基础策略存储存在。 如果存储不存在, 则 Initialize 方法将失败并ERROR_FILE_NOT_FOUND。

[in] bstrPolicyURL

授权策略数据库的持久副本的位置。

此字符串必须同时包含策略 URL 前缀和特定于提供程序的策略位置。 授权管理器使用提供程序前缀来加载相应的提供程序。 存储区是从特定于提供程序的策略位置加载的。 策略 URL 前缀中不允许有空格。

Active Directory 存储的策略 URL 前缀为 msldap:。 URL 的常规格式如下所示:

msldap://ServerNamePort//DistinguishedNameForTheStore

服务器名称和端口是可选的。 如果未提供服务器名称,则使用默认域控制器。 如果未指定端口,则使用默认 LDAP 端口 (LDAP_PORT 389) 。 存储 (DN) 的可分辨名称以 AzAuthorizationStore 对象的相对可分辨名称 (RDN) 开头。 例如,如果 AzAuthorizationStore 对象的 RDN 为 MyStore,而 MyStore 位于名为 AzMan 的 OU) (组织单位中,则 Active Directory 存储的可能 URL 如下所示:

msldap:// MyServer/CN=MyStore,OU=AzMan,DC=MyDomain,DC=Fabrikam,DC=com

XML 存储的策略 URL 前缀为 msxml:。 XML 存储 URL 的常规格式与文件 URL 的格式相同,如以下示例所示:

  • msxml://c:/abc/test.xml
  • msxml://\\server\share\abc.xml
  • msxml://d|/dir1/dir2/abc.xml
  • msxml://c:/Documents%20and%20Settings/test%2exml
请注意,在第四个示例中,URL 对空格 (%20) 和句点 (%2e) 字符使用编码。 此外,URL 不支持传统的相对路径表示法。 如果指定 msxml://abc.xml,则 URL 指向驱动器根目录中的文件。
注意 如果通过网络使用 XML 或 SQL 存储,则不会自动加密流量。 IPsec 可用于加密传输中的授权信息。 对于 SQL 存储,还可以设置开放数据库连接 (ODBC) 连接以使用加密。 有关如何设置 ODBC 连接的信息,请参阅安装SQL Server后如何启用加密 (网络实用工具)
 

[in, optional] varReserved

保留供将来使用。 此参数可能是以下值之一:

  • varReserved.vt == VT_ERROR 和 varReserved.scode == DISP_E_PARAMNOTFOUND
  • varReserved.vt == VT_EMPTY
  • varReserved.vt == VT_NULL
  • varReserved.vt == VT_I4 and varReserved.lVal == 0
  • varReserved.vt == VT_I2 和 varReserved.iVal == 0

返回值

如果该方法成功,该方法将返回S_OK。

如果 bstrPolicyURL 参数无效,该方法将返回HRESULT_FROM_WIN32 (ERROR_INVALID_NAME) 。

如果方法失败,它将返回指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 常见 HRESULT 值

注解

Active Directory 支持应用程序分区,也称为非域命名上下文。 这些分区用作程序存储应用程序数据的位置。 无法在应用程序分区中创建或保留授权管理器策略存储;请改用 Program Data 容器作为 Active Directory 授权管理器策略存储的容器。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 azroles.h
Library Azroles.lib
DLL Azroles.dll
可再发行组件 Windows XP 上的 Windows Server 2003 管理工具包