在Active Directory中找不到Locked属性(C#)
首先,我知道有很多关于这个主题的post,但是我发现的所有信息对我的情况没有帮助。 发生的事情是我找不到属性在AD中锁定用户的位置。 我用过
链接文字
对于AD的所有其他内容,它已经全部工作了,如果帐户被锁定,userAccountControl的位图不会改变。 尝试访问lockoutTime会返回一个exception,说它无法找到该属性。 唯一远程工作的是
user.InvokeGet( “IsAccountLocked”)
呼叫,但无论帐户是否被锁定,它总是返回false。
如果有人有任何想法,那将是非常有帮助的,或者链接可能会帮助我。
谢谢
如果您使用的是.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... } } }
如果您使用的是.NET 2.0 / 3.0,则可以使用以下代码,假设您有一个名为user
的DirectoryEntry
实例:
// get the "userAccountControl" property int uac = Convert.ToInt32(user.Properties["userAccountControl"][0]); const int ADS_UF_ACCOUNTDISABLE = 0x00000002; const int ADS_UF_LOCKOUT = 0x00000010; bool accountIsDisabled = (uac & ADS_UF_ACCOUNTDISABLE) == ADS_UF_ACCOUNTDISABLE; bool accountIsLockedOut = (uac & ADS_UF_LOCKOUT) == ADS_UF_LOCKOUT;
渣
上述就是C#学习教程:在Active Directory中找不到Locked属性(C#)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1006817.html