C# 从主体对象查询属性

C# 从主体对象查询属性,c#,active-directory,C#,Active Directory,我希望能够为Active Directory中的用户对象查询所有可能的Active Directory属性()。 目前,我正在对属性执行以下操作,例如:lastLogon: (主体是主体对象) 但这给了我System.\u ComObject作为值,因为directoryEntry为空 我的问题是:如何从主体对象获取lastLogon(或所有其他用户属性)属性?我使用了一个适用于lastLogon的扩展类: 您有用户名吗?或者其他财产?你有服务帐户吗?您当前的代码似乎相当脆弱-只有在同一域中使用

我希望能够为Active Directory中的用户对象查询所有可能的Active Directory属性()。 目前,我正在对属性执行以下操作,例如:
lastLogon

(主体是
主体
对象)

但这给了我
System.\u ComObject
作为值,因为
directoryEntry
为空


我的问题是:如何从主体对象获取
lastLogon
(或所有其他用户属性)属性?

我使用了一个适用于lastLogon的扩展类:


您有用户名吗?或者其他财产?你有服务帐户吗?您当前的代码似乎相当脆弱-只有在同一域中使用Windows Auth和/或impersonate,而不是序列化原理,它才能正常成功,但我可以查询其他属性,如cn、company、displayName、givenName。只有lastLogon返回系统。\uuuuComObject。你知道其他查询广告属性的方法吗??
DirectoryEntry directoryEntry = principal.GetUnderlyingObject() as DirectoryEntry;
if (directoryEntry.Properties.Contains("lastLogon"))
{
   return directoryEntry.Properties["lastLogon"].Value.ToString();
}