c# - 设置 Windows/AD 密码,使其成为 "never expires"?

标签 c# directoryentry

这是我的代码:

using (DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName +    ",computer"))
{
   DirectoryEntry NewUser = AD.Children.Add(username, "user");
   string password = username + "123";
   NewUser.Invoke("SetPassword", new object[] { password });
   NewUser.CommitChanges();
   NewUser.Close();
   DirectoryEntry grp;
   grp = AD.Children.Find(groupname, "group");
   if (grp != null)
    {
      grp.Invoke("Add", new object[] { NewUser.Path.ToString() });
    }
}

而我想做的是创建一个 Windows 用户并设置密码永不过期, 但我不知道该怎么做?

最佳答案

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

基本上,您可以定义机器上下文并在本地服务器上轻松创建新用户:

// set up machine-level context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Machine))
{
    // create new user
    UserPrincipal newUser = new UserPrincipal(ctx);

    // set some properties
    newUser.SamAccountName = "Sam";
    newUser.DisplayName = "Sam Doe";

    // define new user to be enabled and password never expires
    newUser.Enabled = true;
    newUser.PasswordNeverExpires = true;

    // save new user
    newUser.Save();
}

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

关于c# - 设置 Windows/AD 密码,使其成为 "never expires"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11025495/

相关文章:

c# - ASP.NET 项目在移动到另一台计算机时抛出 HTTP 错误 500.19

.net - 密码是否使用 DirectoryEntry 安全传输

c# - 具有C#DirectoryEntry类的多个LDAP连接器

c# - 将专有名称转换为规范名称

c# - 声明 List<IEntity<T>> 其中 T :class

c# - 在 ASP.net 中使用 SQL 填充的 GridView 的日期格式 - 非绑定(bind)字段

c# - 如何使用 WebApplicationFactory 禁用服务

c# - SharePoint SPSite 处理

C# 尝试创建带空格的组织单位时出错

c# - 如何在c#代码中在iis 5.1中添加新的应用程序池?