Asp.net DirectorySearcher和SearchResponse返回的属性值属于不同的System类型。\u comobject和Byte array

Asp.net DirectorySearcher和SearchResponse返回的属性值属于不同的System类型。\u comobject和Byte array,asp.net,c#-4.0,active-directory,ldap,openldap,Asp.net,C# 4.0,Active Directory,Ldap,Openldap,我正在一个网站上工作,以管理active directory。我想检查用户是否有更改密码的权限。因此,我必须找到“ntSecurityDescriptor”属性值,然后我必须将其转换为IADsSecurityDescriptor 现在,如果我使用DirectorySearcher类,那么属性值的类型是System.\u ComObject,并且很容易转换为IADsSecurityDescriptor。但当我使用LdapConnection和SearchResponse时,我得到类型为的属性值 b

我正在一个网站上工作,以管理active directory。我想检查用户是否有更改密码的权限。因此,我必须找到“ntSecurityDescriptor”属性值,然后我必须将其转换为IADsSecurityDescriptor

现在,如果我使用DirectorySearcher类,那么属性值的类型是System.\u ComObject,并且很容易转换为IADsSecurityDescriptor。但当我使用LdapConnection和SearchResponse时,我得到类型为的属性值

byte[] array which is unale to cast to IADsSecityDescriptor.
我犯了一个错误

Unable to cast System.Byte[] to IADsSecurityDescriptor

SearchResponse有什么问题吗?或者我使用了一些铸造技术来实现这一点?我在使用DirectoryEntry类时遇到一些问题,因此我只能使用LdapConnction类。

我认为您应该努力尝试使用DirectoryEntry方法。 使用LdapConnection操作AD对象时,您将遇到非常困难的时间

如果您想继续Ldap方式,在快速搜索之后,我将尝试使用本机(这个词说明了一切)自动化功能。里面似乎有一些有趣的东西,比如:

ConvertStringSecurityDescriptor安全描述符


我认为您应该努力尝试使用DirectoryEntry方法。 使用LdapConnection操作AD对象时,您将遇到非常困难的时间

如果您想继续Ldap方式,在快速搜索之后,我将尝试使用本机(这个词说明了一切)自动化功能。里面似乎有一些有趣的东西,比如:

ConvertStringSecurityDescriptor安全描述符


我终于找到了我问题的答案。此类将字节[]转换为有效的安全说明符comobject

ActiveDs.ADsSecurityUtility secUtility = new ActiveDs.ADsSecurityUtility();
ActiveDs.IADsSecurityDescriptor sd = (IADsSecurityDescriptor)secUtility.ConvertSecurityDescriptor((byte[])attribute[0], (int)ADS_SD_FORMAT_ENUM.ADS_SD_FORMAT_RAW, (int)ADS_SD_FORMAT_ENUM.ADS_SD_FORMAT_IID);

我终于找到了我问题的答案。此类将字节[]转换为有效的安全说明符comobject

ActiveDs.ADsSecurityUtility secUtility = new ActiveDs.ADsSecurityUtility();
ActiveDs.IADsSecurityDescriptor sd = (IADsSecurityDescriptor)secUtility.ConvertSecurityDescriptor((byte[])attribute[0], (int)ADS_SD_FORMAT_ENUM.ADS_SD_FORMAT_RAW, (int)ADS_SD_FORMAT_ENUM.ADS_SD_FORMAT_IID);

可能重复的@jbl Hi jbl请告诉我您是否能帮助我。可能重复的@jbl Hi jbl请告诉我您是否能帮助我。谢谢回复。这对我来说太紧急了,这就是为什么我输入了多个问题。我发现RawSecurityDescriptor类在其构造函数中接受字节[],并得到具有SecurityDescriptor CoObject等属性的对象。但我无法将其转换为IADsSecurityDescriptor。谢谢您的回复。这对我来说太紧急了,这就是为什么我输入了多个问题。我发现RawSecurityDescriptor类在其构造函数中接受字节[],并得到具有SecurityDescriptor CoObject等属性的对象。但我不能把它交给IADsSecurityDescriptor。