Opc.Ua.Configuration.AccountInfo.LookupAccountSid C# (CSharp) Метод

LookupAccountSid() публичный статический Метод

Queries the SID table for the specified account name.
public static LookupAccountSid ( string accountName ) : string
accountName string
Результат string
        public static string LookupAccountSid(string accountName)
        {   
            if (String.IsNullOrEmpty(accountName))
            {
                return null;
            }

            // check if already a SID.
            if (accountName.StartsWith("S-"))
            {
                if (Create(accountName) == null)
                {
                    return null;
                }

                return accountName;
            }

            string domain = null;

            int index = accountName.IndexOf('\\');

            if (index != -1)
            {
                domain = accountName.Substring(0, index).ToUpper();
                accountName = accountName.Substring(index+1);
            }

            StringBuilder builder = new StringBuilder();

            builder.AppendFormat("Name='{0}'", accountName);
            
            if (!String.IsNullOrEmpty(domain))
            {
                if (domain != "BUILTIN" && domain != "NT AUTHORITY")
                {
                    builder.AppendFormat(" AND Domain='{0}'", domain);
                }
            }

            SelectQuery query = new SelectQuery("Win32_Account", builder.ToString());  
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
            
            try
            {
                foreach (ManagementObject target in searcher.Get())
                {
                    return target["SID"] as string;
                }
            }
            finally
            {
                searcher.Dispose();
            }

            return null;
        }