如何使用扩展集清除/删除Active Directory属性

时间:2014-10-03 20:32:46

标签: c# active-directory

我在AD中使用Principal Extensions用户来访问UserPrincipal通常无法检索的属性。我的自定义属性定义如下:

    [DirectoryProperty("facsimileTelephoneNumber")]
    public string FaxNumber
    {
        get
        {
            if (ExtensionGet("facsimileTelephoneNumber").Length != 1)
                return null;
            return (string)ExtensionGet("facsimileTelephoneNumber")[0];
        }
        set
        {
            ExtensionSet("facsimileTelephoneNumber", value);
        }
    }

如何使用ExtensionSet清除属性?如果我输入null或空字符串,我几乎总会收到此错误消息:"为目录服务指定的属性语法无效。"。听起来你应该清理该属性,但我不确定它如何与ExtensionSet一起使用。

1 个答案:

答案 0 :(得分:1)

问题是我没有发回一个数组,我只发回了值,而不是数组:

[DirectoryProperty("facsimileTelephoneNumber")]
    public string FaxNumber
    {
        get
        {
            if (ExtensionGet("facsimileTelephoneNumber").Length != 1)
                return null;
            return (string)ExtensionGet("facsimileTelephoneNumber")[0];
        }
        set
        {
            ExtensionSet("facsimileTelephoneNumber", string.IsNullOrEmpty(value) ? new string[1] {null} : new string[1] {value});
        }
    }