How to enforce ASP .NET application access through a common gateway?
<p><strong>Background</strong></p>

<p>At my work we are moving from desktop applications to web applications. Our ASP .NET web applications (not website) use .NET Framework 2.0 and run on IIS 7.0. </p>

<p><strong>Environment Overview</strong></p>

<p>We want to have one Root application and several web applications which satisfy specific business needs. For example, <strong><em>Root</em></strong>, <strong><em>Application A</em></strong>, <strong><em>Application B</em></strong> and <strong><em>Application C</em></strong>. On the Root application we will display links to all the applications the user has access to. We are using Windows Authentication and managing a table of application specific access levels (on our SQL Server 2008 database).</p>

<p><strong>Question</strong> </p>

<p>One of our goals is to enforce the user to access their applications from the <strong>Root</strong> application only. That is, we do not want them to bookmark <a href="http://AppServer/Root/ApplicationA" rel="nofollow">http://AppServer/Root/ApplicationA</a> and access <strong>Application A</strong> by visiting the bookmark. We rather want them to go to <a href="http://AppServer/Root" rel="nofollow">http://AppServer/Root</a> and click on the link to <strong>Application A</strong> to access it. </p>

<p>How can we achieve this? I only need a high-level idea here.</p>

<p>Many thanks to anyone who gives it a shot.</p>
