<p>There have been a couple of questions that sort of dealt with this but not covering my exact question so here we go.</p>

<p>For site settings, if these are stored in a database do you:</p>

<ol>
<li>retrieve them from the db every time someone makes a request</li>
<li>store them in a session variable on login</li>
<li>???????</li>
</ol>

<p>For user specific settings do I do the same as site settings??</p>

<p>Any guidance/best practice would be greatly appreciated.</p>

<p>Cheers</p>

Generally I would put site settings in the web.config file, unless you are building an application that has multiple sites and gets changed by the application itself frequently, it usually wouldn't make sense to put it in the database at first.
For user specific settings I would look into starting with the default asp.net Profile Provider which will store the settings in the database and manage the retrival of the user settings once per Request and save the updates to the end to minimize the number of DB calls. Once you start to hit performance problems you can consider extending the profile provider for caching and/or your specific needs.