It turns out that the path managed by DirectoryServices.Protocols makes LDAP calls, passing them to the low-level LDAP API. This LDAP API is what is requested when get gets a property.
The low-level API is updated only when methods are executed. You can think about this since it creates command line arguments for an executable file that is not already running.
When a call of type Bind () is executed, the executable is launched and the properties report the correct value.
So, just because the property said the value was false, did it use true when necessary.
source share