I'm trying to figure out how to do this and I can't seem to arrive at an idea to try.

I have already created a filter to redirect authenticated requests, so an authenticated user cannot revisit the login page for instance. That's all fine and dandy.

However there is one role in the system that only has access to a single area within the application, any requests to other controllers in the main area or other areas should redirect the user to this area.

I don't just want to show an unauthorised message to these users if they attempt to view anything outside of their area I would prefer to just redirect them back to their area.

what are the different ways to achieve this goal (please include pros and cons)?

**EDIT**

Just to be clear about this the reason I'm looking to do this is mop up potential edge cases where a user of a particular role enters a url from browser history or manually which coule take them to another area of the application they shouldn't be accessing.

For the *default* area of the application where the base role is `User` it is sufficient to just use the basic `AuthorizeAttribute` which just ensures requests are authorized (as most users will be granted a user role on registration.

For other areas there are specific roles which will correctly show a 401 unarthorized page to a user without the given role.

Where in this special case a certain type of user is created with a specific role and **NOT** provided with the basic `User` role but at the same time their requests will be deemed as `Authorized`.