我想检索Active Directory中用户的创建日期。我知道用户有一个WhenCreated属性,但我看不到我正在使用的 UserPrincipal 类型上公开的属性。
我想做这样的事情:
var principal = UserPrincipal.FindByIdentity(context, IdentityType.Guid, guid);
//var createdDate = principal.CreationDate;
编辑:这是在IIS中运行的Web应用程序,在同一网络上的另一台计算机上查询AD服务器。
答案 0 :(得分:10)
您需要获取基础DirectoryEntry(System.DirectoryServices
- 命名空间的一部分)。
您可以使用此扩展方法将日期作为字符串获取:
public static String GetProperty(this Principal principal, String property)
{
DirectoryEntry directoryEntry = principal.GetUnderlyingObject() as DirectoryEntry;
if (directoryEntry.Properties.Contains(property))
return directoryEntry.Properties[property].Value.ToString();
else
return String.Empty;
}
像这样使用:
var createdDate = principal.GetProperty("whenCreated");