gpt4 book ai didi

c# - 检查 Active Directory 帐户是否被锁定 (WPF C#)

转载 作者:太空狗 更新时间:2023-10-29 20:59:10 26 4
gpt4 key购买 nike

大家好(这是我的第一篇文章)我有一些从 Codeplex 中提取的简单 AD 代码 http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C ) 并且我能够从所述代码中获取所有最终用户的信息。现在,我一直在搜索和搜索,并从这里和网络上找到了一些关于“用户是否被锁定?”的有趣代码片段。

我想使用我已经使用了 2 年的代码,并在其中添加更多内容以添加锁定的部分...如果有一个文本框,我会很高兴给我我的信息,或者一个复选框,或者只是说“用户已锁定”的东西,然后我会通知我的 Exchange 团队并让用户解锁......

我的代码如下:

string eid = this.tbEID.Text;
string user = this.tbUserName.Text.ToString();
string path = "PP://dc=ds,dc=SorryCantTellYou,dc=com";

DirectoryEntry de = new DirectoryEntry(path);

DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = "(&(objectCategory=person)(sAMAccountName=" + eid + "))";

SearchResultCollection src = ds.FindAll();

//AD results
if (src.Count > 0)
{
if (src[0].Properties.Contains("displayName"))
{
this.tbUserName.Text = src[0].Properties["displayName"][0].ToString();
}
}

所以,如果我能弄清楚如何使用相同的目录条目,并且搜索器向我显示帐户锁定状态,那将是惊人的......请协助

最佳答案

如果您使用的是 .NET 3.5 及更高版本,则应查看 System.DirectoryServices.AccountManagement (S.DS.AM) 命名空间。在这里阅读所有相关信息:

基本上,您可以定义域上下文并在 AD 中轻松找到用户和/或组:

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SamAccountName");

if(user != null)
{
string displayName = user.DisplayName;

if(user.IsAccountLockedOut())
{
// do something here....

}
}

新的 S.DS.AM 使得在 AD 中与用户和组一起玩真的很容易!

关于c# - 检查 Active Directory 帐户是否被锁定 (WPF C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12992471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com