如何将像“user@example.com”这样的upn名称转换为相应的NT帐户名称,这通常是“EXAMPLE \ user”?在我熟悉的领域,我可以在'@'符号后面的第一部分,但我担心这不能保证是正确的。我是否必须运行ldap查询?如果我这样做,它会是用户的DirectoryEntry上的属性吗?
我正在尝试在C#中执行此操作,但我欢迎对我的术语进行任何指示或更正。
由于
答案 0 :(得分:2)
您可以使用Windows中存在的ActiveDs库的NameTranslateClass。
看看: http://www.rlmueller.net/NameTranslateFAQ.htm
它是为VBScript编写的,但您可以通过interop轻松地将其传输到c#。
请参阅MSDN: http://msdn.microsoft.com/en-us/library/aa706046(VS.85).aspx
答案 1 :(得分:0)
我最终使用p-invoke来调用DsCrackNames,而不是使用Mischa建议的COM接口(我理解它是围绕同一个函数的包装器)。