Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 查找帐户GUID,并使用对象GUID将其重新选择_Spring_Ldap_Spring Ldap - Fatal编程技术网

Spring 查找帐户GUID,并使用对象GUID将其重新选择

Spring 查找帐户GUID,并使用对象GUID将其重新选择,spring,ldap,spring-ldap,Spring,Ldap,Spring Ldap,我正在尝试为Active Directory中的帐户选择唯一标识符。我发现“objectguid”属性确实唯一地标识用户,但我的问题是我不知道如何将检索到的值转换为可读的格式。然后可以使用此值重新选择用户。 我正在使用SpringLDAP库,现在“objectguid”返回一个char[](15个元素) 那么,有人知道有什么可以帮助你的吗? (注意,我不能使用SAM名称属性) 谢谢,请参见。似乎有两种字符串格式:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,您可以


我正在尝试为Active Directory中的帐户选择唯一标识符。我发现“objectguid”属性确实唯一地标识用户,但我的问题是我不知道如何将检索到的值转换为可读的格式。然后可以使用此值重新选择用户。
我正在使用SpringLDAP库,现在“objectguid”返回一个char[](15个元素)
那么,有人知道有什么可以帮助你的吗?

(注意,我不能使用SAM名称属性)


谢谢,请参见。似乎有两种字符串格式:
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
,您可以通过
新的BigInteger(0,(byte[])attr.get()).toString(16)
,以及
XXXXXXXX-XXXX-XXXX-XXXXXXXX-xxxxxxxxxxxxxxxxxxxx
,这是一个加上标点的东西。

请参见。似乎有两种字符串格式:
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
,您可以通过
新的BigInteger(0,(byte[])attr.get()).toString(16)
,以及
XXXXXXXX-XXXX-XXXX-XXXX-xxxxxxxxxxxxxxxxxxxx
,这是相同的东西加上标点符号。

感谢EJP的回复,当我尝试您建议的方法时,我有两个问题:1-attr.get()返回包含奇怪符号的字符串(例如:�'��) 当我尝试将其强制转换为(byte[])时,我得到了错误“类型不匹配无法将非数组值分配给数组”。我还尝试了“attr.get().toString().getBytes()”,然后(“新的BigInteger(1,attr.get().toString().getBytes()”)。我确实得到了一个号码,但它看起来不像GUID。而且在中使用它时,没有联系人与此值匹配search@RO86我希望attr.get()返回一个字节[],但是如果它真的是一个字符串,当然你不能强制转换它,你必须转换它,您还没有这样做。当我尝试创建第一个参数为0的BigInteger时,我得到了“java.lang.NumberFormatException:signum magnitude Mitch”,因此,我使用了“1”。现在,当我使用此号码搜索联系人时,我得到了一个返回号码(例如:(objectguid=4C3F722F6F2D5B22F37143F3F))我没有得到任何回报。我担心这个“attr.get().toString().getBytes()”会损坏guidvalue@RO86让我们回溯一下。1对于new BigInteger的第一个参数是正确的,但是您不需要使用toString()如果它已经是一个字符串,并且原始的“无法将非数组值分配给数组”错误也很奇怪。您为响应我的第一个建议而编写的实际代码是什么?它与我的第一个建议一致吗?我使用toString(),因为“get”返回一个对象,我在调试时知道它是字符串类型。我的问题是使用“objectguid”值在AD上搜索并获取相应的联系人。如果attr.get()方法返回以下内容:new String(new char[]{101、118、26、9、65533、41、65533、76、65533、106、75、0、65533、77、29、65533})你能告诉我如何在搜索广告时使用它吗?谢谢EJP的回复,当我尝试你建议的方法时,我有两个问题:1-attr.get()返回包含奇怪符号的字符串(例如:�'��) 当我尝试将其强制转换为(byte[])时,我得到了错误“类型不匹配无法将非数组值分配给数组”。我还尝试了“attr.get().toString().getBytes()”,然后(“新的BigInteger(1,attr.get().toString().getBytes()”)。我确实得到了一个号码,但它看起来不像GUID。而且在中使用它时,没有联系人与此值匹配search@RO86我希望attr.get()返回一个字节[],但是如果它真的是一个字符串,当然你不能强制转换它,你必须转换它,您还没有这样做。当我尝试创建第一个参数为0的BigInteger时,我得到了“java.lang.NumberFormatException:signum magnitude Mitch”,因此,我使用了“1”。现在,当我使用此号码搜索联系人时,我得到了一个返回号码(例如:(objectguid=4C3F722F6F2D5B22F37143F3F))我没有得到任何回报。我担心这个“attr.get().toString().getBytes()”会损坏guidvalue@RO86让我们回溯一下。1对于new BigInteger的第一个参数是正确的,但是您不需要使用toString()如果它已经是一个字符串,并且原始的“无法将非数组值分配给数组”错误也很奇怪。您为响应我的第一个建议而编写的实际代码是什么?它与我的第一个建议一致吗?我使用toString(),因为“get”返回一个对象,我在调试时知道它是字符串类型。我的问题是使用“objectguid”值在AD上搜索并获取相应的联系人。如果attr.get()方法返回以下内容:new String(new char[]{101、118、26、9、65533、41、65533、76、65533、106、75、0、65533、77、29、65533})你能告诉我怎么用这个搜索广告吗?