如何在C#中转义字符串,以便在LDAP查询中使用
我有一个LDAP查询,我用它在C#中执行搜索.它使用两个字符串变量(用户名和域),出于安全原因需要逃脱. 我应该如何逃脱字符串? c#.net中是否有一个功能可以执行此操作? 示例LDAP搜索条件: (objectCategory=person) (userprincipalname=username@domain*) (samaccountname=username) c#中的ldap查询字符串: string search = "(&(&(objectCategory=person)(userprincipalname=" + username + "@" + domain + "*)(samaccountname=" + username + ")))"; 编辑:我已经有LDAP查询工作并返回结果.我只想逃脱参数. 解决方案 以下是我从S
0 2024-04-13
编程技术问答社区
如何在Asp.net C#中使用LDAP在活动目录中搜索用户
如何从ASP.NET C#? 中的Active Directory Server获取所有记录 解决方案 在 ldap 中制作一个连接字符串提供用户名和密码,它可以与服务器通信并具有管理员权利. 假设dc是 me.com 和用户名和密码是该用户ID的密码,它具有管理员权限. DirectoryEntry rootDSE = rootDSE = new DirectoryEntry("LDAP://OU="",OU=" ",dc="me",dc=com", username, password); DirectorySearcher search = new DirectorySearcher(rootDSE); search.PageSize = 1001;// To Pull up more than 100 records. search.Filter = "(&(objectClass=user)(!userAccountCon
4 2024-03-09
编程技术问答社区
无法在ADLDS实例上的ADSI编辑中创建新的计算机
使用ADSI编辑我无法使用该接口并创建新的 Computer . 背景 所以我安装了但是,我想开发LDAP查询以确定ActiveDirectory组中的计算机数量,因此我想创建计算机对象.从新菜单不可能.我已经读到了Elese,LDIF的进口很重要,因为您需要正确的模式.因此,我第二次遵循这些步骤,并导入所有可用的LDIF文件,这些文件是在C:\Windows\ADAM中找到的文件的一个子集(对我来说).选择是... ms-adamsyncmetadata.ldf ms-adlds-displayspecifiers.ldf ms-azman.ldf ms-inetorgperson.ldf MS-Membershiptransitive.ldf ms-parentdistname.ldf ms-replvalMetadataext.ldf ms-secretattributecars.ldf ms-stownerbypassquotacars.ldf
2 2024-01-10
编程技术问答社区
novell.directory.ldap.netstandard MaxResults
我正在使用novell.directory.ldap.netstandard查询我的Active Directory. 它最多可以带回1000个用户,我知道这是因为服务器上的PageSize设置为1000,我该如何获取代码以带回所有Active Directory用户? - 我正在使用异步搜索方法. string ldapHost = ""; int ldapPort = ; string loginDN = ""; string password = ""; string searchBase = ""; string searchFilter = ""; string[] attributes = new string[] { "givenName", "sn"}; LdapConnection ldapConn = new LdapConne
4 2024-01-10
编程技术问答社区
在一次查询中使用DNs获取多个实体的电子邮件
我有我的LDAP服务器的2个或更多实体的DNS,需要为它们获取电子邮件ID.有没有办法在单个查询中执行此操作.我看了"可扩展的匹配搜索过滤器),但无法找到一种方法. 解决方案 使用|或操作员构造查询过滤器: (|(distinguishedName=)(distinguishedName=)) 如有必要,您可以添加更多条款,只要所得的过滤器字符串大小小于10MB(约500万个字符)
2 2024-01-10
编程技术问答社区
当试图解决一个跨库引用时,目标委托人的SID无法解决。错误代码是1332
在从组中获取用户时,给出了例外消息,例如"在尝试解决跨店参考时,目标主的SID无法解决.错误代码为1332." . PrincipalContext ctx = null; if (!string.IsNullOrWhiteSpace(adUserName)) { ctx = new PrincipalContext(ContextType.Domain, domainName, adUserName, adPassword); } else { ctx = new PrincipalContext(ContextType.Domain, domainName); } var groupNames = commaSeparatedGroupNames.Split(','); IEnumerabl
6 2024-01-10
编程技术问答社区
使用LotusScript查询AD-lastLogon值为空
亲爱的lotusscript大师, 我正在开发一个莲花笔记代理,应该将我们的Windows 2003 AD与我们的Lotus Domino目录同步(v 7.0.3服务器/客户端). 我正在使用adodb.connection和adodb.command进程将其连接并查询广告用户. 这是命令文本: objCommand.CommandText = ";(&(objectCategory=person)(objectClass=user));name,lastLogon;subTree" 然后,我将访问" LastLogon"字段的内容: objRecordSet.Fields("lastLogon").Value 但是这是空的,而字段"名称"具有正确的值(我知道LastLogon字段是64位日期 - 整数左右). 使用相同的查询,例如在VBSc
4 2024-01-10
编程技术问答社区
活动目录: 获取所有组成员
问题:如何以一致的方式检索所有小组成员? 上下文:我正在检索所有人,组,联系人或计算机的对象: Filter = "(|(objectCategory=person)(objectCategory=computer)(objectCategory=group))" 我现在需要检索小组的所有成员.我开发了三种方法来做到这一点.但是,他们正在为同一组返回不同的结果,我不确定为什么.我怀疑它可能是由嵌套组(即组中的组)引起的.调试这是一个挑战,因为某些组包含许多成员,以至于调试器时间出现并且没有结果. 方法1和2慢.方法3很快.因此,我更喜欢使用方法3. Group Name Retrieval Method Recursive Search Count Members Comment Group1 AccountManagement TRUE 505 Group1 A
10 2024-01-10
编程技术问答社区
当试图绑定到一个AD用户对象时,错误2147463168
我正在制作Windows 2012(不是R2,无法升级)广告环境.当我使用Admin(不是管理员)帐户中的VBScript运行以下代码时,它运行完美.但是,当我使用普通用户运行它时,我会得到-2147463168,这似乎是一个绑定错误. On error Resume next UsuariosLDAP = "LDAP://" & objSysInfo.UserNameSet ObjUser = GetObject(UsuariosLDAP) If err.number 0 then strTipoError = "Error buscando objeto en LDAP " & CStr(Err.Number) & " Usuario:" & objSysInfo.UserName shell.logevent 1, strTipoError Wscript.Quit end if 当它使用管理员帐户正确运行时,我会假设(寻找其
6 2024-01-10
编程技术问答社区
LDAP查询已删除的用户
查询用户目录的正常方法是(&(objectClass=user)(objectCategory=person)).查询已删除对象的正常方法是添加(isDeleted=TRUE). 但是,objectCategory属性不存在于墓碑对象上,因此(&(objectClass=user)(objectCategory=person)(isDeleted=TRUE))的查询将使您一无所获. 如果您删除了(objectCategory=person)零件,那么您也将获得计算机,因为它们从用户继承. 是否可以仅检索删除的用户? 如果不是,是否可以从返回的墓碑对象分辨出该用户是否? 解决方案 尝试一个LDAP过滤器,例如: (&(isDeleted=TRUE)(userAccountControl:1.2.840.113556.1.4.803:=512)) 这应该检索大多数已删除的用户类型条目. 其他解决方案 Python3代码 import l
14 2024-01-10
编程技术问答社区
检查用户是否存在于活动目录中
我正在使用vb.net,我想检查特定用户是否存在于Active Directory中.如果确实如此,我想显示特定用户的详细信息.如何做? 用户登录凭据通过文本框控件传递 我的代码: Dim de As DirectoryEntry = GetDirectoryEntry() Dim ds As DirectorySearcher = New DirectorySearcher(de) ds.Filter = "(&(objectClass=txt1.text))" ' Use the FindAll method to return objects to SearchResultCollection. results = ds.FindAll() Public Shared Function GetDirectoryEntry() As DirectoryEntry Dim dirEntry As DirectoryEntry = N
10 2024-01-10
编程技术问答社区
怎样才能更好地使用C#查询活动目录中的多个域?
我试图将LDAP/AD搜索扩展到仅在当前登录的域中搜索到搜索AD中的所有域.该方法带有查询并返回并返回ldapinformation对象的字符串. 当我问的时候,是否有任何更好的方法来搜索名称?如果用姓氏寻找一个人(示例:doe*). ,这是用户不友好的. public static LDAPInformation[] GetGlobalAddressListVIAName(string nameQuery) { var currentForest = Forest.GetCurrentForest(); var globalCatalog = currentForest.FindGlobalCatalog(); using (var searcher = globalCatalog.GetDirectorySearcher()) { using (var entry =
8 2024-01-10
编程技术问答社区
带通配符的ldap查询
我有一个像下面的查询 (|(distinguishedName=cn=Game_BI_CHARGE_BACK,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_Compliance,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_Finance,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_GP,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_MANAGED_CARE,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_MEDICAI
10 2024-01-10
编程技术问答社区
带有通配符的活动目录查询性能不佳
我正在编写C#中的一种方法,该方法应该查询Active Directory,并找到所有用户和组,并具有格式名称​​ {displayName} (WildCard搜索,带有领先和尾巴),方法将用于自动完成字段. 问题是我写的方法的性能真的很差,试图查询广告的任何内容在30秒至整个分钟之间,具体取决于查询字符串. 我的组织的广告很大,但是如果需要这么长时间,则自动完成字段将毫无意义. 这是我现在正在使用的代码: // Intialize the results list. result.queryResult = new List(); // Set up domain context. PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain, Constants.adQueryUser, Constants.adQueryPass
6 2024-01-10
编程技术问答社区
如何通过LDAP请求启用或禁用一个AD用户账户?
到目前为止,我能够在LDAP中找到用户,但我不知道如何启用或禁用它们. 作为第二个问题,如果我的帐户具有域管理权,我将能够从LDAP启用或禁用帐户? 注意:这是关于在Windows 2003上运行的Microsoft Active Directory. 我知道我可以检查 with: 的活动用途 (!(useraccountcontrol:1.2.840.113556.1.4.803:=2)) 禁用二手: (useraccountcontrol:1.2.840.113556.1.4.803:=2) 问题是如何以使其内部不会松动其他二进制标志的方式设置属性. 解决方案 您需要在此处使用一些逻辑.因此,要禁用用户,您将禁用位设置(2).所以: const long ADS_UF_ACCOUNTDISABLE = 0x00000002; long userAccountControl = //currentUacValue long newUse
20 2024-01-10
编程技术问答社区
LDAP过滤器-查找特定OU的所有用户
我在LDAP Search Filter上遇到麻烦.我需要检索的是特定LDAP组的所有用户,该组为OU=Staff,OU=Users,OU=Accounts,DC=test,DC=local 我的搜索是: (&(objectCategory=user)(OU=Staff,OU=Users,OU=Accounts,DC=test,DC=local)) 当前它没有返回结果.我想念什么? 解决方案 您必须做两件事 设置搜索的基础OU=Staff,OU=Users,OU=Accounts,DC=test,DC=local 使用objectClass. 搜索对象 使用PHP,搜索看起来像这样(基于此PHP示例):
48 2024-01-10
编程技术问答社区
LDAP组成员(包括域用户)
即使该组恰好是某些用户的主要组,我如何获得LDAP组中的用户列表? 例如,假设"域用户"是德语中的"域leute".我希望" CN =域Leute,dc = mycompany,dc = com"的所有成员.我怎么知道那是著名的"域用户"组? 或如果某些用户的主要组更改为" CN = Rebels,DC = MyCompany,DC = COM",而我想让该组成员的成员?用户没有其主要组的成员属性,并且主要组没有成员属性列出它们. 这是我通过LDAP查看(即,没有MS扩展)时看到的: 解决方案 您需要首先从组对象中找出primaryGrouptoken.如果您使用的是ADSIEDIT,则需要确保使用"构造"过滤器以查看此计算的属性.对于域用户,主要grouptoken应该为513. 然后,您neeed查找所有带有主要groupid的用户将其设置为此值.这是您应该编写的LDAP查询,以找出所有用域用户设置为主要组的用户. (&(objectCatego
16 2024-01-10
编程技术问答社区
为什么Spring LDAP'的LdapTemplate不能返回标题、部门和公司属性?
我正在使用spring-ldap-core-2.3.1.RELEASE.jar JDK 1.8&Tomcat 8.0通过LdapTemplate访问广告信息. title,department&company之类的属性未通过ldapTemplate.search(..,.,..)方法返回. 我正在使用以下代码来搜索: - LdapQuery ldapQuery = LdapQueryBuilder.query() .where("objectclass").is("user") .and("objectcategory").is("person") .and("cn").like(strWildcardText+"*"); ldapTemplat
10 2024-01-10
编程技术问答社区
通过SQL递归查询AD组成员资格
背景 我正在创建一些SQL来协助安全审核;这将从各种系统数据库和Active Directory中获取安全性信息,并会产生所有异常列表(即,在一个系统中关闭帐户的情况,而不是其他系统. . 当前代码 要获取作为安全组成员的用户列表,我运行以下SQL: if not exists(select 1 from sys.servers where name = 'ADSI') EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADSDSOObject', 'adsdatasource' SELECT sAMAccountName, displayName, givenName, sn, isDeleted --, lastLogonTimestamp --, lastLogon (Could not convert the data value due to reasons
4 2024-01-10
编程技术问答社区