在 ASP.NET MVC C# 中显示 SQLServer2005SQLBrowserUser$DONSERVER 而不是 Active Directory 组名称的下拉列表

问题描述 投票:0回答:1

问题来了。我正在处理的应用程序视图中的下拉列表显示

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
(例如)访问列表,但模型在调试模式下一直显示为空。

c# asp.net asp.net-mvc active-directory
1个回答
0
投票

我实际上自己解决了这个问题。问题是我有

List<GroupModel>
而不是 ListList<string> 并获得了所有 Active Directory 组。谢谢:D

© www.soinside.com 2019 - 2024. All rights reserved.