If you are on Windows NT you can use the NT login as a security check
USER = Environ("Username")
If USER <> .... THEN
MSGBOX "You Do Not Have Access Rights to This File",vbcritical,"NO ACCESS"
ActiveWorkbook.Close SaveChanges = True
Environ("Username") is very handy for running auto open macros as you can predetermine external queries and reports etc on the user basis (i.e. by dept) without requiring any interaction by the user. Unless they know how to log on as someone else it's also pretty safe.
In order to do what you are proposing you will need to force the users to enable macros, otherwise the login form will not be displayed.
This basically involves using the Before_Close event to hide (xlVeryHidden) all sheets except one on closing, that one sheet should contain a message advising users that they must enable macros to use the workbook. Then in the Open event you unhide the sheets again.
In your case, you would also make the user complete the login before unhiding the sheets.
(I'm pretty sure the issue of forcing macro use has been covered before. If you need some pointers do a search on that topic. Any problems repost on this thread).