2010-08-07 629 views
3

我用下面的代码在Active Directory为什么我得到了“访问被拒绝(异常来自HRESULT:0X80070005(E_ACCESSDENIED))”在Active Directory中创建用户时

DirectoryEntry newUser = null; 
      try 
      { 
       if (!Authenticate()) return null; 

       newUser = location.Children.Add("CN=" + userName, "user"); 
       newUser.Properties["samAccountName"].Value = userName; 
       newUser.Properties["cn"].Value = userName; 

       newUser.CommitChanges(); 
       string guid = newUser.Guid.ToString(); 
       newUser.Invoke("SetPassword", new object[] { password }); 
       newUser.CommitChanges(); 
       DomainDirectoryEntry.Close(); 
       newUser.Close(); 
       return guid; 
      } 
      catch 
      { 
       throw; 
      } 
      finally 
      { 
       newUser = null; 
      } 

创建用户如果我运行这个来自asp.net网页的代码,它创建用户在Active Directory中,它创建禁用,但它会抛出异常Exception has been thrown by the target of an invocation.,当我得到这个异常的内部异常它让我Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDEN我敢肯定,我用来访问活动帐户目录是一个完整的管理..

我不确定的原因,为什么它是创建用户,但它在设置密码时产生错误...可以引导我得到错误吗?

回答

1

我试了很多办法和结束时,我们发现,当从SharePoint运行代码出现问题,所以我们把代码在下面的代码,并将其成功运行

SPSecurity.RunWithElevatedPrivileges(delegate() 
    { 
    ...... 
    } 
1

我想你(应用程序池用户或模拟用户)没有权限这样做。

默认情况下,用户将是网络服务,我确信没有该权限。

您如何知道您使用哪个帐户访问Active Directory?

+0

但应用程序池的用户甚至影响我使用域管理员用户从代码访问活动目录... – 2010-08-08 07:17:16

相关问题