Any server side language can do this. I suggest PHP but you could use any server side language(ASP, JSP, Coldfusion...) . To authenticate the user, you'll have to use a login page. Then you can deny access to the site for any user not logged in (inaccessible to the general public).
I'm not sure if there is any software available to do this, but if you are having someone build the site with a shopping cart, they should be capable of hiding the site behind a login.