Good to hear (about the book). There is no concept of connection caching in SDS.P. Because you explicitly open/hold a connection in SDS.P via the LdapConnection class, you are in charge of any pooling or reuse.
For an ASP.NET app, I am not sure how you would handle this easily (and btw, ADSI has a similar problem here). You can certainly get pooling to work in ADSI as long as you have a another DirectoryEntry with same credentials and AuthencationTypes in scope. Given that a page request is only in scope for a fraction of a second, this typically didn't happen too much, so ADSI has the same issue. The object on the page (even static ones) go out of scope each request and are created/destroyed.
Without putting the connection objects in another service or something like this, I am not sure you will get the pooling you desire.
Joe mentioned something about static classes once, maybe he has a technique that would work here in ASP.NET.
So, short answer - you are on your own and ASP.NET is hard to pool anyways even in ADSI.
Ryan Dunn
Extemporaneous MumblingsThe .NET Developer's Guide to Directory Services Programming