首先我知道有很多关于这个主题的帖子,但是我找到的所有信息对我的情况没有帮助。发生的事情是我找不到该属性在AD中锁定用户的位置。我用过
对于AD的所有其他内容,但它已全部工作,如果帐户被锁定,则userAccountControl的位图不会更改。尝试访问lockoutTime会返回一个异常,说它无法找到该属性。
唯一可以远程工作的东西user.InvokeGet( “IsAccountLocked”)
调用,但无论帐户是否被锁定,它总是返回false。
如果有人有任何想法,那将会非常有用,或者链接可能会帮助我。
由于
答案 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
马克