Get Domain Name

D

Dan

Hi

I need to get the Domain Name in NT format. I can do it with the
following code, but it takes 5 seconds to execute, which is to much for
me. Anyone know how to do it faster ?

Thanks

Dany


DirectoryEntry rootDSE = new
DirectoryEntry("LDAP://RootDSE");
string dnc =
(string)rootDSE.Properties["defaultNamingContext"].Value;

DWORD rc; //code de retour
HANDLE handle = IntPtr.Zero;

rc = NativeMethods.DsBind(
null,
null,
out handle
);

if (rc != 0)
{
throw new Exception("...");
}

string[] nomDomaine;
try
{
nomDomaine = NameUtility.DsCrackNamesWrapper(
new string[] { dnc },
handle,
DS_NAME_FORMAT.DS_FQDN_1779_NAME,
DS_NAME_FORMAT.DS_NT4_ACCOUNT_NAME
);
}
catch (Exception ex)
{
throw new Exception("...." + ex.Message);
}
finally
{
NativeMethods.DsUnBind(ref handle);
}
return nomDomaine[0];
 
J

Joe Kaplan

The domain name for what? If you want the current user's domain name (which
is what you are getting with this code), why not parse out what is returned
from System.Security.Principal.WindowsIdentity.GetCurrent().Name?

Joe K.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,189
Latest member
CryptoTaxSoftware

Latest Threads

Top