Как получить Имена пользователей домена в веб-части Sharepoint? - PullRequest
0 голосов
/ 29 июля 2010

Я хочу получить имена пользователей в активном каталоге с помощью веб-части sharepoint.Любой способ получить имена пользователей с помощью ASP.нет, но я не могу преобразовать этот код в веб-часть sharepoint ....

вот код .........

          using System;
          using System.Collections.Generic;
          using System.Linq;
          using System.Web;
          using System.Web.UI;
          using System.Web.UI.WebControls;
          using System.DirectoryServices;
          using System.Data;


        string domain = "LDAP://serverName";
        DirectoryEntry entry = new DirectoryEntry(domain);

        DirectorySearcher searcher = new DirectorySearcher(entry);

        searcher.Filter = "(&(objectClass=user))";

        SearchResultCollection resultCol = searcher.FindAll();

        //Link list for store user names 
        List<String> User_Names = new List<String>();

        int count = 0;

        foreach (SearchResult result in resultCol)
        {
            User_Names.Add(result.Properties["CN"][0].ToString());
            count = count + 1;
        }

        //can print all user names by using for loop or while loop 

        Label2.Text = RadioButtonList1.SelectedItem.Text;

Ответы [ 2 ]

0 голосов
/ 30 июля 2010

// не забудьте добавить System.DirectoryServices.AccountManagement в качестве ссылки и использовать System.DirectoryServices.AccountManagement;

        PrincipalContext insPrincipalContext = new PrincipalContext(ContextType.Domain, "MyDomain","DC=MyDomain,DC=com");
        UserPrincipal insUserPrincipal = new UserPrincipal(insPrincipalContext);
        insUserPrincipal.Name = "*";
        PrincipalSearcher insPrincipalSearcher = new PrincipalSearcher();
        insPrincipalSearcher.QueryFilter = insUserPrincipal;
        PrincipalSearchResult<Principal> results = insPrincipalSearcher.FindAll();
        foreach (Principal p in results)
        {
            Console.WriteLine(p.Name);
        }

Выше Код работал на меня .... но я должен был сделать некоторые изменения (1) Удалите часть «DC = MyDomain, DC = com», сохраните ее и разверните веб-часть

(2) В веб-части sharepoint нет никакого Console.Writeline ("String"), поэтому измените его так, как хотите ....

Примечание. Этот код отображается для всех пользователей в Avtive Directory, если пользователь вошел в систему или нет ....

Приветствия !!!!!

Chinthaka

0 голосов
/ 30 июля 2010

Вот кое-что, с чего можно начать.Это скелет класса веб-части .NET, который включает в себя привязку к данным RadioButtonList.Чтобы развернуть его в SharePoint, вам также потребуется собрать правильный манифест .webpart.В Интернете есть множество примеров таких проектов, и проекты Visual Studio 2010 для SharePoint 2010 упрощают использование шаблона Visual Web Part.(Обратите внимание, что если вы используете шаблон визуальной веб-части, вы можете записать веб-часть с помощью файла .ascx, как и любой другой пользовательский элемент управления, вместо использования CreateChildControls(), как я делаю ниже.)

Удачи!

using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

/// <summary>
/// This web part provides redirection logic to a page.
/// </summary>
public class RedirectWebPart : System.Web.UI.WebControls.WebParts.WebPart
{
    /// <summary>
    /// Creates the child controls.
    /// </summary>
    protected override void CreateChildControls()
    {
        base.CreateChildControls();
        RadioButtonList list = new RadioButtonList();
        Controls.Add(list);

        list.AutoPostBack = true;
        list.SelectedIndexChanged += new EventHandler(this.OnSelectedNameChanged);

        // On the next line, ADUtility.GetActiveDirectoryNames() is a dummy
        // class and method that you should replace with your AD query logic.
        // It just needs to return an enumerable collection of strings.
        list.DataSource = ADUtility.GetActiveDirectoryNames();
        list.DataBind();
    }

    protected void OnSelectedNameChanged(object sender, EventArgs e)
    {
        // Your event-handling logic.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...