Best practice for multiple user types
<p>I have an Asp.Net MVC 5 website. In my system there are around 5 types of users with different properties and each of them should have their own control panel which will give them tools to handle their work on the system.</p>

<p>Now I understand there are 2 approaches I could take (or maybe even a better alternative)</p>

<ol>
<li><p>Use the <code>ApplicationUser</code> as the base class for all of them such as:</p>

<pre><code>public class NormalUser : ApplicationUser
{
}
</code></pre></li>
</ol>

<p>and retrieve the ones I want like this: <code>var users = db.Users.OfType&lt;NormalUser&gt;();</code> However I understand that this will combine all of the properties of different user types onto the same table and it could potentially be a huge table.</p>

<ol start="2">
<li>Use the <code>ApplicationUser</code> as a property of each user type and handle everything manually. This obviously could be a little tedious but maybe a bit tidy.</li>
</ol>

<p>Is there a 3rd and better approach and if not which one is the go-to approach for web developers? Because I imagine this is a pretty common need on various websites.</p>