之前可能已经回答过了,但我找不到任何可以帮助我的生活。我们有不同的系统,与较新的系统相比,一些较旧的系统对同一个人有不同的AD指南。 guids看起来很相似,但却不同。这在我正在做的新应用程序中引起了一个大问题,即读取SQL数据库表单以及较旧和较新的应用程序。这是一个示例,较旧的一个是:147e2a1e-579e-a143-88b9-d3a8ee00e609
,较新的是1e2a7e14-9e57-43a1-88b9-d3a8ee00e609
。如果我用.NET阅读AD,它会给我“更新”的指导。造成这种情况的原因是什么,我该怎么做才能解决这个问题?
答案 0 :(得分:4)
我以前见过这个问题。它是由不同工具以不同方式解释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