One option would be to use ADXStudio (version 7.x supports CRM On Premise), however the future of this is uncertain as Microsoft favour Microsoft Portals (version 8.x).
If you do go for custom development, I'd suggest you keep the credentials outside of CRM. If your development skills are with ASP.Net, then I'd go for using the ASPNet Membership Provider and login controls to handle the authentication. One issue with using
the email address as both the username and the link between the credential store and CRM is managing changes to the email address; I prefer to use a separate identifier to link the data
Microsoft CRM MVP - http://mscrmuk.blogspot.com/ http://www.excitation.co.uk