在Active Directory中找不到Locked属性(C#)

时间:2009-07-22 15:49:08

标签: c# active-directory

首先我知道有很多关于这个主题的帖子,但是我找到的所有信息对我的情况没有帮助。发生的事情是我找不到该属性在AD中锁定用户的位置。我用过

link text

对于AD的所有其他内容,但它已全部工作,如果帐户被锁定,则userAccountControl的位图不会更改。尝试访问lockoutTime会返回一个异常,说它无法找到该属性。

唯一可以远程工作的东西

user.InvokeGet( “IsAccountLocked”)

调用,但无论帐户是否被锁定,它总是返回false。

如果有人有任何想法,那将会非常有用,或者链接可能会帮助我。

由于

2 个答案:

答案 0 :(得分:4)

如果您使用的是.NET 3.5,则应使用System.DirectoryServices.AccountManagement命名空间中的UserPrincipal类。此类有IsAccountLockedOut()方法以及获取AccountLockOutTime的属性。

using (var context = new PrincipalContext( ContextType.Domain ))
{
     using (var user = UserPrincipal.FindByIdentity( context,
                                                     IdentityType.SamAccountName,
                                                     name ))
     {
          if (user.IsAccountLockedOut())
          {
              ... your code here...
          }
     }
}

答案 1 :(得分:0)

如果您使用的是.NET 2.0 / 3.0,则可以使用以下代码,假设您有一个名为DirectoryEntry的{​​{1}}实例:

user

马克