这个问题可能以前已经回答过了,但我找不到任何可以帮助我的生活的东西。 我们有不同的系统,与较新的系统相比,一些较旧的系统对同一个人有不同的 AD GUID。 指南看起来相似,但不同。 这在我正在执行的新应用程序中引起了一个大问题,即读取SQL数据库表单以及较旧和较新的应用程序。 这是一个例子,较旧的是这样的:147e2a1e-579e-a143-88b9-d3a8ee00e609
,较新的是这个1e2a7e14-9e57-43a1-88b9-d3a8ee00e609
。如果我使用 .NET 阅读 AD,它会给我"较新"的 GUID。 造成这种情况的原因是什么,我该怎么做才能解决它?
我以前见过这个问题。 这是由不同的工具以不同的方式解释AD中的位引起的。 我敢打赌,您可以通过交换东西将一个转换为另一个。 你只需要弄清楚算法。 我写了一些代码在一个实例中修复了类似的东西,可能不完全可以修复你的问题,但应该让你走上正确的道路。
Private Shared Function SymmetricConversion(source As Guid) As Guid
Dim sourceStr = source.ToString()
Dim sb = New System.Text.StringBuilder()
'group 1
sb.Append(sourceStr.Substring(6, 2))
sb.Append(sourceStr.Substring(4, 2))
sb.Append(sourceStr.Substring(2, 2))
sb.Append(sourceStr.Substring(0, 2))
sb.Append(sourceStr.Substring(8, 1))
'group 2
sb.Append(sourceStr.Substring(11, 2))
sb.Append(sourceStr.Substring(9, 2))
sb.Append(sourceStr.Substring(13, 1))
'group 3
sb.Append(sourceStr.Substring(16, 2))
sb.Append(sourceStr.Substring(14, 2))
'groups 4 and 5
sb.Append(sourceStr.Substring(18, sourceStr.Length - 18))
Dim resultStr = sb.ToString()
Dim result = New Guid(resultStr)
Return result
End Function