There are two major approaches:
1) Some sort of plugin system.
As you can compile much anything in an assambly, you could simply do that, and have your login dll. But there are severeal thing to solve. So you better look for a ready-made solution. There is a concept in MVC called area. This is a good article about it:
Areas in ASP.NET MVC 4[
^] . You can go further creating and consuming portable areas. I suppose this will be really near to what you are looking for:
http://lostechies.com/erichexter/2009/11/02/asp-net-mvc-portable-areas-part-2/[
^]. It has its drawbacks, it is considered outdated (MvcContrib is not supported for some years), but this is a working coded approach. Still it is suitable for mature projects only.
See disavantages:
http://stackoverflow.com/questions/17140271/portable-area-disadvantages[
^]
1.5) I haven't tested this approach, but looks promising. You can use WebActivator to achive much the same results. See this:
http://kennytordeur.blogspot.hu/2012/12/aspnet-mvc-reuse-areas-from-external.html[
^]
2) Using nuget. By this approach you don't create reusable component, you create reusable template for a functionality. It does not facilitate any plugin schema for your application.