dsUnquoteRdnValueA 函数 (dsparse.h)

DsUnquoteRdnValue 函数是一个客户端调用,用于将带引号的 RDN 值转换回未加引号的 RDN 值。 由于 RDN 最初被放入引号中,因为它包含的字符在嵌入到可分辨名称 (DN) 中时可能被误解,因此不应使用 LDAP 等各种 API 将未加引号的 RDN 值作为 DN 的一部分提交到目录服务。

语法

DSPARSE DWORD DsUnquoteRdnValueA(
  [in]      DWORD cQuotedRdnValueLength,
  [in]      LPCCH psQuotedRdnValue,
  [in, out] DWORD *pcUnquotedRdnValueLength,
  [out]     LPCH  psUnquotedRdnValue
);

参数

[in] cQuotedRdnValueLength

psQuotedRdnValue 字符串中的字符数。

[in] psQuotedRdnValue

可以带引号和转义的 RDN 值。

[in, out] pcUnquotedRdnValueLength

此参数的输入值是 psQuotedRdnValue 的最大长度(以字符为单位)。

此参数的输出值包括以下标志。

ERROR_SUCCESS

如果字符数与 psQuotedRdnValue 中使用的字符串匹配,则返回此值。

ERROR_BUFFER_OVERFLOW

如果字符数与 psQuotedRdnValue 中使用的字符串不匹配,则返回此值。

[out] psUnquotedRdnValue

已转换的、未加引号的 RDN 值。

返回值

以下列表包含为 DsUnquoteRdnValue 函数返回的可能值。

备注

引用 psQuotedRdnValue 时:

  • 删除前导和尾随引号。
  • 放弃第一个引号前的空格。
  • 放弃尾随最后一个引号的空格。
  • 删除转义并保留转义后面的字符。
取消 引用 psQuotedRdnValue 时,将执行以下操作:
  • 放弃前导空格。
  • 保留尾随空格。
  • 转义的非特殊字符返回错误。
  • 未转义的特殊字符返回错误。
  • 以 # 开头的 RDN 值 (忽略前导空格) 作为 BER 值进行处理,该值以前已转换为字符串,并相应地转换。
  • 转义的十六进制数字 (\89) 转换为二进制字节 (0x89) 。
  • 从转义的特殊字符中删除转义。
始终执行以下操作:
  • 转义的特殊字符未转义。
  • 输入和输出 RDN 值不是以 null 结尾的值。

注意

dsparse.h 标头将 DsUnquoteRdnValue 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 dsparse.h (包括 Ntdsapi.h)
Library Ntdsapi.lib
DLL Ntdsapi.dll

请参阅

域控制器和复制管理功能

DsQuoteRdnValue