Search code examples
asp.netactive-directorywindows-authentication

Getting authenticate AD users objectGuid from asp.net


I am using windows authentication within an ASP.NET application. I am wondering how to best get the objectGuid from the currently logged in user?

Regards, Egil.


Solution

  • You can do this with the System.DirectoryServices namespace.

    Dim entry As DirectoryServices.DirectoryEntry
    Dim mySearcher As System.DirectoryServices.DirectorySearcher
    Dim result As System.DirectoryServices.SearchResult
    Dim myEntry As DirectoryEntry
    Dim domainName As String
    Dim userId As String
    Dim objectGuid As Guid
    
    'Split the username into domain and userid parts
    domainName = Page.User.Identity.Name.Substring(0, Page.User.Identity.Name.IndexOf("\"))
    userId = Page.User.Identity.Name.Substring(Page.User.Identity.Name.IndexOf("\") + 1)
    
    'Start at the top level domain
    entry = New DirectoryEntry(domainName)
    
    mySearcher = New DirectorySearcher(entry)
    
    'Build a filter for just the user
    mySearcher.Filter = ("(&(anr=" & userId & ")(objectClass=user))")
    
    'Get the search result ...
    result = mySearcher.FindOne
    
    '... and then get the AD entry that goes with it
    myEntry = result.GetDirectoryEntry
    
    'The Guid property is the objectGuid
    objectGuid = myEntry.Guid
    

    There might be a better way to do this, but this works!