C# 使用证书验证.NET应用程序对Active Directory域的管理访问

C# 使用证书验证.NET应用程序对Active Directory域的管理访问,c#,.net,active-directory,certificate,windows-server-2008-r2,C#,.net,Active Directory,Certificate,Windows Server 2008 R2,我正在编写一个C#应用程序,用于管理Active Directory域上的用户、组、权限等。我的应用程序当前仅在使用域管理员用户帐户在域计算机上运行时有效。我想让我的应用程序在使用任何用户帐户的任何计算机上工作,而不考虑域成员资格或权限。我不想在应用程序中存储管理员密码。这似乎是一个可以通过证书处理的作业 那么,我如何使用证书在AD域上验证我的应用程序,以便授予我的应用程序在域上的管理权限,而不考虑我的应用程序运行的上下文(用户、计算机等) 我的应用程序使用System.DirectorySer

我正在编写一个C#应用程序,用于管理Active Directory域上的用户、组、权限等。我的应用程序当前仅在使用域管理员用户帐户在域计算机上运行时有效。我想让我的应用程序在使用任何用户帐户的任何计算机上工作,而不考虑域成员资格或权限。我不想在应用程序中存储管理员密码。这似乎是一个可以通过证书处理的作业

那么,我如何使用证书在AD域上验证我的应用程序,以便授予我的应用程序在域上的管理权限,而不考虑我的应用程序运行的上下文(用户、计算机等)

我的应用程序使用System.DirectoryServices.DirectoryEntry对象来操作域。我希望我的现有代码尽可能保持完整,因此最好使用使用此API的解决方案。此外,如果可能,我希望避免安装其他服务(例如IIS)

下面的代码似乎符合我的要求,但它仍然要求我的应用程序知道域管理员帐户的用户名和密码

DirectoryEntry domain = Domain.GetDomain(new DirectoryContext(
    DirectoryContextType.DirectoryServer,
    "domain controller ip", "admin username", "admin password"))
    .GetDirectoryEntry();
如果我能完全像上面的代码那样做,但是用一个证书代替用户名和密码,我会得到它