title: What would be the best way to handle a system with multiple user types?
body: <p>I've been given the task of updating an asp system to MVC3. My main issue is that the current system has 2 different kinds of user, each user has their own user table, and in the current asp site, each user is defined by a number of different session held variables.</p>
  
  <p>Because other systems use the two different user tables, I can't merge them. So what would be the best way forward?</p>
  
  <p>I initally thought about keeping them seperate in the system; having a class type for each user which holds the seperate variables mirrored from their asp counterpart. On login, I could push user type to userdata in the auth cookie, then create an extension method on the IPrincipal to return the user type when required.</p>
  
  <p>This feels a bit of a hack, and as the users will be viewing the same pages, there would be a lot of duplication of code.</p>
  
  <p>Would it be better to create some form of facade before the user repository which would attach a role to a common user object which would identify the user type in the system? I could then check this role and pull out the data, that used to be stored in session variables, when needed.</p>