https://bugs.openldap.org/show_bug.cgi?id=7298
--- Comment #6 from Howard Chu hyc@openldap.org --- "No data for this control" means the data portion should not be sent at all.
Setting bv_len and bv_val is just the quirk of how their API is designed. If we accept their published spec at face value, then their C# SDK implementation is wrong, because it is sending zero length data instead of "no data". You should submit a ticket to Microsoft to resolve this by either fixing their doc or fixing their SDK, whichever the case may be. The current OpenLDAP behavior conforms to their official spec so there is no OpenLDAP bug here.