Redirect anonymous users to login when trying to view profile
Have you tried the login_toboggan drupal module? Not sure if it works with Civi profiles but it might. It provides the option to add a login form on all "access denied" screens.