Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PrincipalExistSexException被抛出,但主体没有';事实上并不存在_C#_Active Directory_Windows Server 2008 R2_Directoryservices - Fatal编程技术网

C# PrincipalExistSexException被抛出,但主体没有';事实上并不存在

C# PrincipalExistSexException被抛出,但主体没有';事实上并不存在,c#,active-directory,windows-server-2008-r2,directoryservices,C#,Active Directory,Windows Server 2008 R2,Directoryservices,考虑到下面的代码,当我知道委托人不存在且实际上不存在时,为什么我会得到PrincipalExistException public UserPrincipal Add( string givenName, string surname, string domain) { UserPrincipal principal = new UserPrincipal(context: base.Context) { Enabled = true };

考虑到下面的代码,当我知道委托人不存在且实际上不存在时,为什么我会得到
PrincipalExistException

public UserPrincipal Add(
    string givenName,
    string surname,
    string domain) {
    UserPrincipal principal = new UserPrincipal(context: base.Context) {
        Enabled = true
    };

    if (!String.IsNullOrEmpty(givenName) && !String.IsNullOrEmpty(surname) && !String.IsNullOrEmpty(domain)) {
        this.RenameInternal(principal: principal, givenName: givenName, surname: surname, domain: domain);

        principal.Save();
    };

    return principal;
}
我可以确认
Rename internal()
方法工作正常,因为它是由名为
Rename()
的方法调用的。因此,对象的创建和/或保存方式肯定存在问题,但我不知道如何找出错误所在。这似乎是足够简单的代码

查看域控制器(WindowsServer2008R2)时,我在任何地方都找不到“新”创建主体,因此我假设它没有被创建,并且异常不知何故对我撒谎


我非常感谢你在这方面的帮助。提前谢谢。

我能想到的唯一一件事就是


无论您的应用程序在哪个ID下运行,都需要对AD具有“写”访问权限。几乎所有ID都可以查询AD,但只有被明确授予权限的ID才能对其进行写操作。

我能想到的唯一一件事是:


无论您的应用程序运行在哪个ID下,都需要对AD具有“写”访问权限。几乎所有ID都可以查询AD,但只有明确授予权限的ID才能对其进行写操作。

好的,我找到了答案。SamAccountName是引发异常的原因(感谢Microsoft提供了有用的错误消息)。无论如何,这是一个问题,因为它试图将其设置为一个已经存在的名称。我修改了它,加入了一个中间的首字母,效果很好,或者至少直到我找到了首字母、中间首字母和姓氏相同的人。

好的,我找到了答案。SamAccountName是引发异常的原因(感谢Microsoft提供了有用的错误消息)。无论如何,这是一个问题,因为它试图将其设置为一个已经存在的名称。我修改了它,加入了一个中间的首字母,效果很好,或者至少在我找到首字母、中间首字母和姓氏相同的人之前。

好吧,我有一个特殊的帐户,它被授予了管理权。我甚至将该帐户添加到具有读写访问权限的
域用户
OU中,但仍然出错。使用完全相同的帐户,我可以创建
GroupPrincipal
s而不会出现任何问题。我发现它来自
SamAccountName
属性,它不允许我在创建时更改该属性。如果我重命名我在域控制器中手动创建的
UserPrincipal
,我可以对其进行更改,但是如果
UserPrincipal
是通过我的应用程序创建的,它将不允许我在创建时对其进行设置或重命名。WTF?嗯,我有一个特别帐户,它被授予了管理权。我甚至将该帐户添加到具有读写访问权限的
域用户
OU中,但仍然出错。使用完全相同的帐户,我可以创建
GroupPrincipal
s而不会出现任何问题。我发现它来自
SamAccountName
属性,它不允许我在创建时更改该属性。如果我重命名我在域控制器中手动创建的
UserPrincipal
,我可以对其进行更改,但是如果
UserPrincipal
是通过我的应用程序创建的,它将不允许我在创建时对其进行设置或重命名。WTF?您可以通过在Active Directory中打开“查找”UI、在“高级”选项卡上创建自定义搜索并搜索“samaccountname=**”来检查此问题。您可以通过在Active Directory中打开“查找”UI、在“高级”选项卡上创建自定义搜索并搜索“samaccountname=**”来检查此问题。