【问题标题】:sAMAccountName searching in VB.NETsAMAccountName 在 VB.NET 中搜索
【发布时间】:2013-08-28 13:41:05
【问题描述】:

我是 VB 的新手,所以我想请你帮忙。我想在此代码中添加搜索功能。假设有人会搜索 sAMaccountname,他会收到该用户的电子邮件。我真的不知道如何使用 AD 中的属性,所以只有我拥有的是这个(我认为很容易找到结果:))。当我看到如何将 samaccountname 发送到电子邮件时,我想我也可以继续做其他事情。谢谢。

Imports System.DirectoryServices
Imports System.DirectoryServices.ActiveDirectory

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim domains As DomainCollection = Forest.GetCurrentForest.Domains
        For Each domain As Domain In domains
            'MessageBox.Show(domain.Name)
            ComboBox2.Items.Add(domain.Name)
        Next
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim domain As DirectoryEntry = New DirectoryEntry("LDAP://ourdomain.com/OU=Users,OU=Czech Republic,OU=TEAD,DC=eu,DC=ourcompany,DC=com")
        For Each child As DirectoryEntry In domain.Children
            ComboBox1.Items.Add(child.Name)
        Next
    End Sub

End Class

【问题讨论】:

    标签: vb.net active-directory


    【解决方案1】:

    这样的事情应该做你想做的事:

    Public Shared Function FindEmailsFromSamAccountName(ByVal samAccountName As String) As String
    
        Dim ctx As New PrincipalContext(ContextType.Domain)
    
        Dim qbeUser As New UserPrincipal(ctx)
        qbeUser.SamAccountName = samAccountName
        qbeUser.Enabled = True
    
        Dim srch As New PrincipalSearcher(qbeUser)
        For Each foundUser In srch.FindAll
            Dim up As UserPrincipal = CType(foundUser, UserPrincipal)
            Return up.EmailAddress
        Next
        Return ""
    End Function
    

    它只返回它找到的第一个。您应该在此处添加一些错误检查。

    您可以通过在 samAccountName 的开头或结尾添加“*”来扩展搜索以返回更多匹配项,以进行通配符搜索。

    【讨论】:

    • 太棒了,完全按照我的需要工作,谢谢 :) 对此还有更多问题,如果我们使用更多的 AD 域,如何从所有这些域中获取结果?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多