Get Domain Name

Discussion in 'ASP .Net Security' started by Dan, Jan 11, 2007.

  1. Dan

    Dan Guest

    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];
     
    Dan, Jan 11, 2007
    #1
    1. Advertisements

  2. Dan

    Joe Kaplan Guest

    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.
     
    Joe Kaplan, Jan 12, 2007
    #2
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.