2010-08-13 15 views
1

我想運行此功能,或至少從AD與不同的憑據刪除計算機帳戶的位:如何在代碼中指定備用憑證?

public static void DeleteMachineAccount(String MachineName) 
     { 
      String MachineLdapPath = LdapPath(MachineName); 
      String OuLdapPath = MachineLdapPath.Replace("CN=" + MachineName + ",", ""); 

      Console.WriteLine(MachineLdapPath); 
      Console.WriteLine(OuLdapPath); 

      if (DirectoryEntry.Exists(MachineLdapPath)) 
      { 
       try 
       { 
        DirectoryEntry MachineOu = new DirectoryEntry(OuLdapPath); 
        DirectoryEntry MachineToDelete = new DirectoryEntry(MachineLdapPath); 
        MachineOu.Children.Remove(MachineToDelete); 
        MachineToDelete.CommitChanges(); 
       } 
       catch (Exception e) 
       { 
        Console.WriteLine(e.Message.ToString()); 
       } 
      } 

     } 

(該LdapPath函數只是返回指定機器名的LDAP路徑。)

如何/我在哪裏指定一些不同的憑據以允許它運行?目前我拒絕訪問權限,因爲我使用的帳戶沒有權限執行此操作。

感謝,

回答

1

您可以使用提供身份驗證的DirectoryEntry類的重載。這將使您的LDAP查詢以具有此特定用戶權限的DirectoryServices運行。謹慎的一句話,爲了做到這一點,你需要傳遞證書(這需要存儲或由用戶輸入),所以要小心如何處理它們。以純文本存儲它們可能會導致系統安全問題。

New DirectoryEntry(ldapRoot, _activeDirectoryUsername, _activeDirectoryPassword); 
0

你需要使用模擬。做到這一點的最簡單方法是實際上「借用」調用此方法的人的許可。例如,如果這是從命名管道或WCF調用中調用的,則有內置的方式來模擬調用方並代表他們執行此操作。

相關問題