Active directory Microsoft AD GUID不匹配

Active directory Microsoft AD GUID不匹配,active-directory,guid,Active Directory,Guid,这可能已经被回答过了,但我找不到任何对我的生活有帮助的东西。我们有不同的系统,与较新的系统相比,一些较旧的系统对同一个人有不同的AD GUID。guid看起来很相似,但不同。这在我正在做的一个新应用程序中造成了一个大问题,该应用程序正在读取SQL数据库表单以及旧的和新的应用程序。这里有一个例子,旧的是:147e2a1e-579e-a143-88b9-d3a8ee00e609,新的是1e2a7e14-9e57-43a1-88b9-d3a8ee00e609。如果我用.NET阅读广告,它会给我“更新的

这可能已经被回答过了,但我找不到任何对我的生活有帮助的东西。我们有不同的系统,与较新的系统相比,一些较旧的系统对同一个人有不同的AD GUID。guid看起来很相似,但不同。这在我正在做的一个新应用程序中造成了一个大问题,该应用程序正在读取SQL数据库表单以及旧的和新的应用程序。这里有一个例子,旧的是:
147e2a1e-579e-a143-88b9-d3a8ee00e609
,新的是
1e2a7e14-9e57-43a1-88b9-d3a8ee00e609
。如果我用.NET阅读广告,它会给我“更新的”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

令人惊叹的!看起来你的代码实际上可以解决我的问题。有趣的是,相同的代码可以双向转换。