繁体   English   中英

在 C# 中将 SID 转换为 GUID?

[英]Convert SID to GUID in c#?

我想从 Ad 活动目录和组中给定的 Sid 值中获取 GUID 值。

class Program
{
    static string myGuid;
    static void Main(string[] args)
    {
        myGuid = GetGuidString("S-1-5-21-1520874019-1059933425-2350978085-6519");

        Console.WriteLine(myGuid);
        Console.ReadKey();
    }
    public static string GetGuidString(string sid)
    {
        return Guid.Parse(sid).ToString();
    }   
}

您需要查询活动目录。 这是一个 vb 解决方案,您可以将其翻译或查看 System.DirectoryServices 命名空间。

'example sid: S-1-5-21-2407707581-4260124077-1944392116-13936
Function getGuidFromSid(ByVal sid As String) As String
    Dim rootEntry As New DirectoryServices.DirectoryEntry()
    Dim searcher As New DirectoryServices.DirectorySearcher(rootEntry)
    searcher.PropertiesToLoad.AddRange(New String() {"sAMAccountName", "objectGUID"})
    searcher.Filter = "(&(objectSid=" & sid & ")(objectCategory=person))"
    Dim results As DirectoryServices.SearchResultCollection
    results = searcher.FindAll()
    Dim ret = results.Item(0).Properties("objectGUID").Item(0) 'quick and dirty, please handle nulls etc
    Return ret
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM