Speaking as a user: it is VERY, VERY annoying when a search brings up a promising result, and you go there only to find the site requires a login. As noted elsewhere, people are not likely to create an account purely to see a page. Possible but not likely.
Exluding search engines from pages they've previously crawled is generally not a good idea. I'd go with a "noindex" meta.
Some sites do use a "satisfy any" structure that allows registered users and also certain named search engines. See above about annoying users :(