C# 如何在代码中指定备用凭据?
我想运行此功能,或者至少运行从AD中删除具有不同凭据的计算机帐户的位:C# 如何在代码中指定备用凭据?,c#,permissions,active-directory,C#,Permissions,Active Directory,我想运行此功能,或者至少运行从AD中删除具有不同凭据的计算机帐户的位: public static void DeleteMachineAccount(String MachineName) { String MachineLdapPath = LdapPath(MachineName); String OuLdapPath = MachineLdapPath.Replace("CN=" + MachineName + ",",
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路径。)
如何/在何处指定一些不同的凭据以允许此操作运行?目前我的访问被拒绝,因为我使用的帐户将没有权限这样做
谢谢
Ben您需要使用模拟。最简单的方法是实际“借用”调用此方法的人的权限。e、 例如,如果这是从命名管道或WCF调用调用的,则有内置的方法来模拟调用方并代表调用方执行此操作。您需要使用模拟。最简单的方法是实际“借用”调用此方法的人的权限。e、 例如,如果这是从命名管道或WCF调用调用的,则有内置的方法来模拟调用方并代表调用方执行此操作。您可以使用提供身份验证的DirectoryEntry类的重载。这将导致LDAP查询以该特定用户的权限从DirectoryServices运行。需要注意的是,要做到这一点,您需要传递凭据(需要用户存储或输入凭据),因此在处理凭据时要小心。以纯文本形式存储它们可能会导致系统安全问题
New DirectoryEntry(ldapRoot, _activeDirectoryUsername, _activeDirectoryPassword);
可以使用提供身份验证的DirectoryEntry类的重载。这将导致LDAP查询以该特定用户的权限从DirectoryServices运行。需要注意的是,要做到这一点,您需要传递凭据(需要用户存储或输入凭据),因此在处理凭据时要小心。以纯文本形式存储它们可能会导致系统安全问题
New DirectoryEntry(ldapRoot, _activeDirectoryUsername, _activeDirectoryPassword);