DsUnquoteRdnValueA 函数 (dsparse.h)

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

语法

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
目标平台 窗户
标头 dsparse.h (包括 Ntdsapi.h)
Ntdsapi.lib
DLL Ntdsapi.dll

另请参阅

域控制器和复制管理功能

DsQuoteRdnValue