Determining a User's Group Membership

后端 未结 3 554
遇见更好的自我
遇见更好的自我 2020-12-16 19:23

How can I determine if a user, in say Access, is a member of an Active Directory Security Group?

I\'d rather not build a whole authentication system into my little A

3条回答
  •  孤城傲影
    2020-12-16 19:41

    Allain found this online

    Function IsMember(strDomain As String, strGroup _
      As String, strMember As String) As Boolean
      Dim grp As Object
      Dim strPath As String
    
      strPath = "WinNT://" & strDomain & "/"
      Set grp = GetObject(strPath & strGroup & ",group")
      IsMember = grp.IsMember(strPath & strMember)
    End Function
    

    You can get the Windows account info by way of the USERDOMAIN and USERNAME environment vars:

    Function GetCurrentUser() As String
        GetCurrentUser = Environ("USERNAME")
    End Function
    
    Function GetCurrentDomain() As String
        GetCurrentDomain = Environ("USERDOMAIN")
    End Function
    

    Putting it all together:

    If IsMember(GetCurrentDomain, "AD Group", GetCurrentUser) Then
       DoStuff()
    End If
    

提交回复
热议问题