In my opinion I would say categorically if, using ASP.NET Identity will bring you many advantages, ignoring the cryptographic tasks and saving you work. In addition, ASP.NET Identity is ready to be extended because, in a simple way you can change from the type of identifiers to use your own entities of usuarios
, roles
, ...
I think that in your case you only need to put it in common, add an authorization system and link the entities of usuarios
with those of clientes
and empleados
A simple way to do this would be to create a Biblioteca de clases
project and move the ASP.NET Identity elements that are included, by default, in the MVC project ( ApplicationUser
, ApplicationDbContext
, ApplicationUserManager
, ...).
Afterwards, you would add the necessary elements to manage the authorization (entities to define the permissions, service to manage the authorization, ...)
In my opinion, the association between usuarios
and clientes
and empleados
would not include it in the common project because it could be useful for more projects in which you do not have these entities.
And finally, if you pack this project in a NuGet package, you could, in a simple way, add authentication and authorization to all your projects.
In this CodeProject article " ASP.NET Identity with webforms " you can see the flesibility of ASP.NET Identity that you can even "click" on a WebForms
project