草庐IT

DirectoryServices

全部标签

.net - 如何在 Powershell 中安全地验证 AD 用户(加密凭据)

我的应用程序要求用户根据ActiveDirectory进行身份验证。我们正在考虑使用我们向其传递用户名和密码的System.DirectoryServices.DirectoryEntry执行PowerShell脚本。我在另一个答案中看到它提到了System.DirectoryServices.DirectoryEntry使用LDAP读取AD信息这一事实。LDAP协议(protocol)本身未加密。您可以使用LDAPS,但这需要设置CA。我想知道此命令生成的网络流量在默认情况下是否安全-即是否可以通过网络嗅探密码?编辑我发现您可以将其他选项传递给DirectoryEntry实例。这是示

c# - 使用 C# System.DirectoryServices 在远程 Windows 服务器上进行用户管理

我编写了一个程序,它打开到远程Windows服务器的连接以管理本地帐户(不是ActiveDirectory)。该程序执行以下步骤:用户创建将用户添加到组这两种方法都使用System.DirectoryServices.AccountManagement,这里有两个函数:publicvoidCreateUser(){PrincipalContextpc=newPrincipalContext(ContextType.Machine,"host_ip","adminaccount","adminpassword");UserPrincipalup=newUserPrincipal(pc);

c# - 如何从 Active Directory 中获取组织单位列表?

我调查了DirectoryServices类,它似乎是我需要的,但我似乎找不到获取组织单位集合所需的类/方法。你们能给些建议吗? 最佳答案 您需要使用System.DirectoryServices中的适当DirectorySearcher,并且您需要搜索organizationalUnitAD类(我建议基于单值和索引的objectCategory搜索-比使用objectClass快得多)-像这样:ListorgUnits=newList();DirectoryEntrystartingPoint=newDirectoryEntry

c# - 当组(或递归的子组)包含 ForeignSecurityPrincipal 时,GroupPrincipal.GetMembers 失败

这与其说是一个问题,不如说是给遇到同样问题的任何人的信息。出现以下错误:System.DirectoryServices.AccountManagement.PrincipalOperationException:Anerror(87)occurredwhileenumeratingthegroups.Thegroup'sSIDcouldnotberesolved.atSystem.DirectoryServices.AccountManagement.SidList.TranslateSids(Stringtarget,IntPtr[]pSids)atSystem.D

c# - PrincipalContext 未连接

我正在尝试将PrincipalContext用于我正在开发的网络服务。我已经在不同应用程序的Web服务器上使用表单例份验证,并且工作正常。我收到的错误是:System.DirectoryServices.AccountManagement.PrincipalServerDownException:Theservercouldnotbecontacted.--->System.DirectoryServices.Protocols.LdapException:TheLDAPserverisunavailable.atSystem.DirectoryServices.Protocols.L

c# - 使用 DirectoryServices 从 C# 连接到 LDAP

我正在尝试连接到运行LDAP的edirectory8.8服务器。我将如何着手在.Net中执行此操作?我是否仍可以使用System.DirectoryService中的类,例如DirectoryEntry和DirectorySearcher,或者它们是否特定于AD?我是否需要以任何不同方式指定“连接字符串”?我正在尝试类似下面的代码,但它似乎不起作用...DirectoryEntryde=newDirectoryEntry("LDAP://novellBox.sample.com","admin","password",AuthenticationTypes.None);Director

c# - 如何使用 System.DirectoryServices.AccountManagement 在多个域中进行搜索?

我有三个或更多域名,例如main.com、sub.main.com、sub2.main.com等我有一个代码:using(PrincipalContextctx=newPrincipalContext(ContextType.Domain,"ADServer","dc=main,dc=com",ContextOptions.Negotiate)){UserPrincipalu=newUserPrincipal(ctx);u.UserPrincipalName="*"+mask+"*";using(PrincipalSearcherps=newPrincipalSearcher(u)){

c# - 如何在复杂环境中使用 FQDN 获取 NETBIOS 域名

从完全限定的ActiveDirectory域名中获取NETBIOS域名有时是一项繁琐的任务。我找到了一个很好的答案here.在具有多个林的环境中,如果PC不在您正在查询的林中,则此方法将不起作用。这是因为LDAP://RootDSE将查询计算机域的信息。有人可能会问:为什么这么复杂?只需在检索到的第一个点之前使用名称:ActiveDirectory.Domain.GetComputerDomain().Name;或者只获取用户的域名:Environment.GetEnvironmentVariable("USERDOMAIN");或Environment.UserDomainName;

c# - 确定用户是否在 .NET 4.0 应用程序的 AD 组中

我正在尝试确定用户是否是内部ASP.NET4.0应用程序的ActiveDirectory(AD)组的成员。如果用户不是AD组的成员,下面的代码会在最后一行(返回语句)抛出“尝试访问未加载的应用程序域”异常错误。publicstaticboolIsInADGroup(stringuserName,stringgroupName){varprincipalContext=newPrincipalContext(ContextType.Domain);UserPrincipaluserPrincipal=UserPrincipal.FindByIdentity(principalContex

c# - 使用 DirectoryServices.AccountManagement 从 OU 获取组

我想使用AccountManagement列出组织单位中的所有组。以下代码片段适用于DirectoryServices,但我必须在结果中使用DirectoryEntry路径实例化GroupPrincipal(这感觉像是一个肮脏的修复)。DirectoryEntryroot=newDirectoryEntry("LDAP://OU=Marketing,OU=Operations,OU=Applications,DC=mycompany,DC=local")DirectorySearcherds=newDirectorySearcher(root);ds.Filter="(objectCa