我试图将AD身份验证集成到基本的.NET控制台应用程序(用于概念验证)以在Mono 3.2.8上运行,但以下行引发了异常:
var domain = new PrincipalContext(ContextType.Domain, "server-name.local", "administrator", "password")
例外:
无效的IL代码 System.DirectoryServices.AccountManagement.PrincipalContext:.ctor (System.DirectoryServices.AccountManagement.ContextType,字符串,字符串,字符串): 方法体是空的。
它在Windows下运行完美。有什么想法吗?
答案 0 :(得分:3)
Active Directory主要是Windows的东西。 PrincipalContext
是System.DirectoryServices.AccountManagement.dll
中定义的类。但是你可以从Mono的代码库中看到没有System.DirectoryServices.AccountManagement
,
https://github.com/mono/mono/tree/master/mcs/class
您无法将任何Windows特定位移植到Mono和Linux,但您可能会看到是否可以仅使用System.DirectoryServices
或Novell.Directory.Ldap
重写逻辑。