1
我需要根据Active Directory对用户进行身份验证。在Visual Studio以及LinqPad中运行相同的代码。 LinqPad工作正常,但是在Visual Studio中,它有一个非常有益的未知的错误错误,堆栈跟踪如下:Active Directory Linqpad vs Visual Studio
System.DirectoryServices.Protocols.LdapException: A local error occurred.
at System.DirectoryServices.Protocols.LdapConnection.BindHelper(NetworkCredential newCredential, Boolean needSetCredential)
at System.DirectoryServices.AccountManagement.CredentialValidator.lockedLdapBind(LdapConnection current, NetworkCredential creds, ContextOptions contextOptions)
at System.DirectoryServices.AccountManagement.CredentialValidator.BindLdap(NetworkCredential creds, ContextOptions contextOptions)
at System.DirectoryServices.AccountManagement.CredentialValidator.Validate(String userName, String password)
at System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials(String userName, String password)
是两个,但只在LinqPad运行的代码是:
using (System.DirectoryServices.AccountManagement.PrincipalContext pc = new System.DirectoryServices.AccountManagement.PrincipalContext(System.DirectoryServices.AccountManagement.ContextType.Domain))
{
return pc.ValidateCredentials("SomeName", SomePassword");
}
我也在VS之外运行了exe,不管是否使用Admin,也使用cmd行中的runas。 如果任何人有任何知识,为什么这些行为不同,那么将非常感激。