I added a WithControls extension method that allows you to specify as many additional DirectoryControls as necessary.
List<User> list = context.Query<User>() .WithControls(new DirectoryControl[] { new PageResultRequestControl(100) { IsCritical = true }, new SortRequestControl(new[]{new SortKey("cn", null, true)}) { IsCritical = true }, new ShowDeletedControl { IsCritical = true } }) .ToList();
If you try to perform an OrderBy or ToPage operation while specifying your own via WithControls then an InvalidOperationException will be thrown.
One cool thing here is behind the scenes I still check if you're requesting a page so you can cast the resulting list as a LdapPage and get the cookie for the next page. And that's about it.