are you saying that there is no way to retrieve the search string "(objectClass=user)" from Operation or Connection structure ?

OK, I didn't realize you were talking about 2.1.X (you didn't specify it,
as far as I remember). I do not recommend you develop anything for 2.1,
since it's going to be unmaintained shortly, and porting to 2.2 is going to
be a problem since the internal APIs radically changed. 2.2 itself is now
stable, and development will shortly move towards 2.3.

Within 2.1 the filter string is in the "filterstr" arg to be_search(), the
backend call to perform searches. Check back-*/search.c for an example.
Usually backends don't use it because they rather rely on the parsed form;
an exeption is beck-ldap, you may want to look at that. But let me insist,
use 2.2 (or HEAD...).