问题来了。我正在处理的应用程序视图中的下拉列表显示
SQLServer2005SQLBrowserUser$DONSERVER
而不是实际的 Active Directory 组名称。我是第一次在这里发帖。就我个人而言,我从未遇到过这个问题。我希望有这方面经验的人可以帮忙。我已经在下面发布了相关代码。
获取所有 Active Directory 组的代码(注意:代码位于另一个模型中):
public List<GroupsModel> PopulateGroups(GroupsModel groupsModel)
{
List<GroupsModel> GetGroups = new List<GroupsModel>();
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// define a "query-by-example" principal - here, we search for a GroupPrincipal
GroupPrincipal qbeGroup = new GroupPrincipal(ctx);
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeGroup);
// find all matches
foreach (var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
groupsModel.SamAccountName = found.SamAccountName;
groupsModel.Description = found.Description;
groupsModel.DistinguishedName = found.DistinguishedName;
GetGroups.Add(groupsModel);
}
return GetGroups;
}
这是与检索 Active Directory 组相关的标记 - 注意:在页面顶部我有...
@using Microsoft.AspNet.Identity;,
@model Active_Directory_Manager.Models.MainPageModel
@using System.Web.UI.WebControls;
在我视图的模态部分,我正在使用这段代码。
@{
Active_Directory_Manager.Models.GroupsLists groupLists = new Active_Directory_Manager.Models.GroupsLists();
Active_Directory_Manager.Models.GroupsModel groupsModel = new Active_Directory_Manager.Models.GroupsModel();
}
@foreach (var item in groupLists.PopulateGroups(groupsModel))
{
<select class="input-lg" style="">
<option value="0" style="color:#ccc !important;">
Please select a group to join to...
</option>
<option value="@item.SamAccountName">@item.SamAccountName</option>
</select>
}
如果有人可以帮助我,请先谢谢您。同时我会尽力解决这个问题。
我尝试了多种方法来帮助解决我的问题。我尝试在
private List<GroupsModel>
方法之外使用 public List<GroupsModel> PopulateGroups
,也尝试在该方法内部使用它。
我还尝试通过
@Model.ModelName
(例如)访问列表,但模型在调试模式下一直显示为空。
我实际上自己解决了这个问题。问题是我有
List<GroupModel>
而不是 ListList<string>
并获得了所有 Active Directory 组。谢谢:D