Is it possible through web.config or similar to only allow\disallow access to certain controllers or actions on an ASP.NET MVC2 application? I don't mean through the Authorize attribute, I mean literally completely disallow access to some controllers?
The scenario I'm looking at is that a client has an ASP.NET MVC2 site with one controller with public actions (and no Authorize attribute) and a bunch of other controllers with Authorize attributes on them. The site uses forms authentication so if the user tries to access one of the non-public controllers they are prompted to log in.
The client wants to take this a step further and on their intranet allow access to the non-public controllers, while on the internet only the public controller is accessible.
What approaches are there to do this, preferably without code changes to the actual application? I'm guessing it might be possible with 2 IIS sites\apps with different settings? Will I need 2 copies of the application folder with different web.config or are there other options?