【问题标题】:Microsoft AD GUID MismatchMicrosoft AD GUID 不匹配
【发布时间】:2016-02-05 14:10:25
【问题描述】:

这可能以前已经回答过,但我找不到任何可以帮助我生活的东西。我们有不同的系统,与较新的系统相比,一些较旧的系统为同一个人提供不同的 AD 指南。指南看起来相似,但不同。这在我正在做的一个新应用程序中导致了一个大问题,它正在读取 SQL 数据库表单和较旧和较新的应用程序。这是一个示例,较旧的是:147e2a1e-579e-a143-88b9-d3a8ee00e609,较新的是 1e2a7e14-9e57-43a1-88b9-d3a8ee00e609。如果我用 .NET 阅读 AD,它会给我“更新”的 guid。这是什么原因造成的,我该如何解决?

【问题讨论】:

    标签: active-directory guid


    【解决方案1】:

    我以前见过这个问题。这是由不同工具对 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
    

    【讨论】:

    • 太棒了!看起来您的代码实际上可以解决我的问题。有趣的是,相同的代码可以双向转换。
    猜你喜欢
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多