0

我们有一个基于 C# 构建的内部站点,并具有用于各种功能的各种工具,以帮助公司查找/修改/添加服务帐户等。这些工具只是自动化这些任务的 C# 代码。/模糊的

我被要求找到/创建一种输入 SPN 并让它返回与其关联的服务帐户的方法。

所以像:

输入:HTTP/server1.company.com

输出:SVC_ACCT_AWESOME

我收到的另一个请求是输入服务帐户名称并让它返回 KVNO。

问题,我以前从未在 C# 中做过任何事情。我已经加载了 Visual Studio 2013,我想学习。我花了几个小时在谷歌上倾注,除了这个之外没有发现任何有用的东西:

https://msdn.microsoft.com/en-us/library/vstudio/system.servicemodel.configuration.identityelement.serviceprincipalname(v=vs.100).aspx

不幸的是,这对我没有任何意义。

任何可以为这些特定任务提供的方向都将非常感激!

谢谢。

4

1 回答 1

0

我相信您可以通过以下方式查询广告中的 SPN:

using (var root = new DirectoryEntry()) // or pass in something like "LDAP://dc=example,dc=com" to query a different domain
using (var searcher = new DirectorySearcher(root))
{
    searcher.Filter = "(servicePrincipalName=HTTP/server1.company.com)";

    using (var results = searcher.FindAll())
    {
        foreach (SearchResult result in results)
            Console.WriteLine(result.Properties["samAccountName"][0]); // or whatever you want to do with it
    }
}

(这需要引用 System.DirectoryServices)

于 2015-03-27T03:07:00.683 回答