When a user log in into my application i want to show his name throughout the whole application. I am using the asp.net MVC framework. But what i don’t want is that is have to put in every controller something like:
ViewData['User'] = Session['User'];
This because you may not repeat yourself. (I believe this is the DRY [Don’t Repeat Yourself] principle of OO programming.) The ViewData[‘User’] is on my masterpage. So my question is, what is a neat way to handle my ViewData[‘User’] on one place?
You can do this fairly easily in either a controller base-class, or an action-filter that is applied to the controllers/actions. In either case, you get the chance to touch the request before (or after) the action does – so you can add this functionality there.
For example:
(can also be used at the action (method) level)
or with a common base-class: