在C# ASP.NET中显示Active Directory(AD)中的所有安全组及其成员,可以通过使用System.DirectoryServices命名空间中的类来实现。以下是一个基本的示例,展示了如何连接到AD,检索安全组及其成员,并在网页上显示它们。
Active Directory(AD)是微软的一个目录服务,它存储了网络上各种对象的信息,并使得管理员和用户能够轻松地查找和使用这些信息。安全组是AD中的一个对象,它可以包含用户或其他组,并且可以被赋予特定的权限。
以下是一个简单的ASP.NET Web Forms页面示例,它使用C#代码来检索并显示AD中的安全组及其成员。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ADGroups.aspx.cs" Inherits="ADGroupDisplay.ADGroups" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Active Directory Groups</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Active Directory Security Groups</h1>
<asp:GridView ID="gvGroups" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="GroupName" HeaderText="Group Name" />
<asp:TemplateField HeaderText="Members">
<ItemTemplate>
<ul>
<%# GetGroupMembers(Container.DataItem.ToString()) %>
</ul>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
using System;
using System.DirectoryServices;
using System.Data;
namespace ADGroupDisplay
{
public partial class ADGroups : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGroups();
}
}
private void BindGroups()
{
DataTable dtGroups = new DataTable();
dtGroups.Columns.Add("GroupName");
using (DirectoryEntry entry = new DirectoryEntry("LDAP://YourADServer"))
{
using (DirectorySearcher searcher = new DirectorySearcher(entry))
{
searcher.Filter = "(objectClass=group)";
searcher.PropertiesToLoad.Add("name");
foreach (SearchResult result in searcher.FindAll())
{
DataRow row = dtGroups.NewRow();
row["GroupName"] = result.Properties["name"][0].ToString();
dtGroups.Rows.Add(row);
}
}
}
gvGroups.DataSource = dtGroups;
gvGroups.DataBind();
}
private string GetGroupMembers(string groupName)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
using (DirectoryEntry entry = new DirectoryEntry("LDAP://YourADServer/" + groupName))
{
using (DirectorySearcher searcher = new DirectorySearcher(entry))
{
searcher.Filter = "(objectClass=user)";
searcher.PropertiesToLoad.Add("sAMAccountName");
foreach (SearchResult result in searcher.FindAll())
{
sb.AppendLine("<li>" + result.Properties["sAMAccountName"][0].ToString() + "</li>");
}
}
}
return sb.ToString();
}
}
}
如果在执行上述代码时遇到问题,可以检查以下几点:
通过这种方式,你可以在ASP.NET页面上显示AD中的安全组及其成员。如果需要进一步的优化或功能扩展,可以根据具体需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云