0

ActiveDirectoryから取得しているユーザーのリストがあります。

PrincipalContext pc = new PrincipalContext(ContextType.Domain, "DOMAIN", "dc=domain,dc=org");
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, "Advisors");
ViewBag.EmployeeID = new SelectList(group.Members, "EmployeeID", "DisplayName");

このリストに2つのアイテムを追加したいのですが、実際のユーザーではないため、ActiveDirectoryでそれらのユーザーアカウントを作成したくありません。

のようなことをすることは可能ですか

var items1 = new[] 
{  
    new { EmployeeID = "1", DisplayName = "Independent" },
    new { EmployeeID = "2", DisplayName = "Own" }
};

var items = Concat(group.Members, items1);
{
    ViewBag.EmployeeID = new SelectList(items, "EmployeeID", "DisplayName");
}
4

1 に答える 1

1

まあ、あなたはこのようなViewModelを持つことができます:

public class EmployeeViewModel
{
    public string EmployeeId { get; set; }
    public string DisplayName { get; set; }
}

group.Members を ViewModel のリストにキャストするよりも、このリストにいくつかのカスタム itens を追加し、このリストを ViewBag に設定します。

var members = group.Members.Select(x => new EmployeeViewModel() { EmployeeId = x.EmployeeId, DisplayName = x.DisplayName }).ToList();

members.Add(new EmployeeViewModel() { EmployeeId = "1", DisplayName = "Independent" });
members.Add(new EmployeeViewModel() { EmployeeId = "2", DisplayName = "Own" });

ViewBag.EmployeeID = new SelectList(members, "EmployeeID", "DisplayName");
于 2012-11-27T17:29:22.000 に答える