예제 #1
0
        private static bool TryGetDomainNameWindows(out string domainName, out string errorMessage)
        {
            var domainNameLength  = MaxDomainNameLength;
            var domainNameBuilder = new StringBuilder(MaxDomainNameLength);

            if (!Win32Interop.GetComputerNameEx(Win32Interop.COMPUTER_NAME_FORMAT.ComputerNameDnsDomain, domainNameBuilder, ref domainNameLength))
            {
                errorMessage = string.Concat("WinAPI function [GetComputerNameEx] failed with code: ", Marshal.GetLastWin32Error());
                domainName   = null;
                return(false);
            }

            if (domainNameLength < 1)
            {
                domainName   = NoDomainName;
                errorMessage = null;
                return(true);
            }

            domainName   = domainNameBuilder.ToString(0, domainNameLength);
            errorMessage = null;
            return(true);
        }