首页 > 解决方案 > 使用 Active Directory 创建用户

问题描述

我正在尝试使用从我找到的一些示例代码改编的函数在 Active Directory 中创建用户。

public bool crearUsuario(string usu, string pass, string path)
{
    string path = @"LDAP://" + path;

    //string oGUID = string.Empty;
    try { 

        DirectoryEntry entrada  = new DirectoryEntry(path);

        DirectoryEntry nuevoUsuario = entrada.Children.Add("CN=" + usu, "users");
        nuevoUsuario.Properties["samAccountName"].Value = usu;
        nuevoUsuario.CommitChanges();
        //oGUID = nuevoUsuario.Guid.ToString();

        nuevoUsuario.Invoke("SetPassword", new object[] { pass });
        nuevoUsuario.CommitChanges();
        entrada.Close();
        nuevoUsuario.Close();

        return true;
    }
    catch (System.DirectoryServices.DirectoryServicesCOMException E)
    {
        //E.Message.ToString();
        return false;
    }
    //return oGUID;
}                 

原始代码返回一个字符串 ( oGUID),但我只需要一个布尔值。

我的问题是,他们为什么使用那个字符串?我只需要trueorfalse值,所以我不知道是否需要返回字符串而不是布尔值。

标签: c#active-directory

解决方案


String 对我来说似乎也是一个奇怪的选择:我会返回原始Guid类型。但返回字符串、guid 或其他键的原因是,您希望在创建该用户帐户后对其执行某些操作。将新密钥作为原始创建函数的一部分返回很可能会在以后为您节省一些工作。

如果您知道自己不会处于这种情况,那么只需返回true/ false... 就可以了,请记住关于让异常冒泡的问题的评论也有优点。


推荐阅读