Пример поиска в active directory на ASP(Visual basic)
01.08.07 09:49
Использовалось: ASP.NET, Visual Basic.NET, на одном копьютере Windows 2000 server Active Directory, на другом Windows XP IIS. Скрипт писался и тестировался под учетной записью с правами Domain Admin, под простым пользователем запускать не пробовал. Для корректной работы в файл web.config была добавлена строка <identity impersonate="true" />. Без нее не удавалось получить данные из Active Directory. В данном примере поиск выполняется по cn (фамилии и имени или их части). В результате отображаются все найденные пользователи и их данные:Login, ФИО, Подразделение, Емайл, Местный тел., Городской тел., Факс, Мобильник, Домашний тел. Список выводимых данных можно изменить, необходимые атрибуты можно поискать здесь: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adschema/adschema/attributes.asp <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:TextBox id="TextBox1" runat="server" Width="162px" Height="26px">мок</asp:TextBox> <asp:Button id="Button1" runat="server" Width="110px" Height="22px" Text="Button"></asp:Button></form> <asp:literal id="Literal1" runat="server"></asp:literal> </body> </HTML> Imports System Imports System.DirectoryServices Imports Microsoft.VisualBasic Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here Dim path As String = "LDAP://domain" Dim rootEntry As New DirectoryEntry(path) Dim searcher As New DirectorySearcher(rootEntry) Dim ADUser As SearchResultCollection, myResultPropColl As ResultPropertyCollection, myKey As String Dim objA As Object Dim searchstring As String Dim i As Integer If TextBox1.Text = "" Then searchstring = "cn=" + TextBox1.Text + "*" Else searchstring = "cn=*" + TextBox1.Text + "*" searcher.PropertiesToLoad.Add("SAMAccountName") searcher.PropertiesToLoad.Add("cn") searcher.PropertiesToLoad.Add("department") searcher.PropertiesToLoad.Add("mail") searcher.PropertiesToLoad.Add("telephonenumber") searcher.PropertiesToLoad.Add("otherTelephone") searcher.PropertiesToLoad.Add("facsimileTelephoneNumber") searcher.PropertiesToLoad.Add("mobile") searcher.PropertiesToLoad.Add("homePhone") searcher.Filter = ("(" + searchstring + ")") ADUser = searcher.FindAll() Literal1.Text = ADUser.Count For i = 0 To ADUser.Count - 1 Literal1.Text = Literal1.Text + "<table border=1><tr><td>Login:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("SAMAccountName").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr><tr><td>ФИО:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("cn").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr><tr><td>Подразделение:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("department").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr><tr><td>Емайл:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("mail").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr><tr><td>Местный тел.:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("telephonenumber").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr><tr><td>Городской тел.:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("otherTelephone").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr><tr><td>Факс:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("facsimileTelephoneNumber").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr><tr><td>Мобильник:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("mobile").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr><tr><td>Домашний тел.:</td><td>" Try Literal1.Text = Literal1.Text + ADUser.Item(i).Properties.Item("homePhone").Item(0) Catch Exc As System.NullReferenceException Literal1.Text = Literal1.Text + "Хрен там" End Try Literal1.Text = Literal1.Text + "</td></tr></table> " Next i End Sub
ID
комментарии (0)
Комментарии (0):
© Powered by TSB News v.1.1beta6.2