如何通过公共网关强制ASP.NET应用程序访问?

如何通过公共网关强制ASP.NET应用程序访问?,asp.net,Asp.net,背景 在我的工作中,我们正在从桌面应用程序转向web应用程序。我们的ASP.NET web应用程序(不是网站)使用.NET Framework 2.0并在IIS 7.0上运行 环境概述 我们希望有一个根应用程序和几个满足特定业务需求的web应用程序。例如,根、应用程序A、应用程序B和应用程序C。在根应用程序上,我们将显示指向用户有权访问的所有应用程序的链接。我们正在使用Windows身份验证并管理特定于应用程序的访问级别表(在我们的SQL Server 2008数据库上) 问题 我们的目标之一是

背景

在我的工作中,我们正在从桌面应用程序转向web应用程序。我们的ASP.NET web应用程序(不是网站)使用.NET Framework 2.0并在IIS 7.0上运行

环境概述

我们希望有一个根应用程序和几个满足特定业务需求的web应用程序。例如,应用程序A应用程序B应用程序C。在根应用程序上,我们将显示指向用户有权访问的所有应用程序的链接。我们正在使用Windows身份验证并管理特定于应用程序的访问级别表(在我们的SQL Server 2008数据库上)

问题

我们的目标之一是强制用户仅从根应用程序访问其应用程序。也就是说,我们不希望他们通过访问书签来添加书签和访问应用程序A。我们希望他们转到并点击应用程序A的链接来访问它

我们如何才能做到这一点?我只需要一个高层次的想法


非常感谢所有试一试的人。

检查http请求的referer字段。

检查http请求的referer字段。

从网关,通过使用某种过期令牌的表单post启动应用程序。令牌无法保存在书签中,如果用户在没有令牌的情况下点击应用程序,请将他们重定向到网关。令牌只能由网关应用程序生成,但由子应用程序验证。一旦用户在子应用中进行了验证,您可以存储一个会话变量以允许他们访问应用的其他部分。

从网关,通过使用某种过期令牌的表单post启动应用程序。令牌无法保存在书签中,如果用户在没有令牌的情况下点击应用程序,请将他们重定向到网关。令牌只能由网关应用程序生成,但由子应用程序验证。一旦用户在子应用程序中进行了验证,您可以存储一个会话变量,以允许他们访问应用程序的其他部分。

在corporateland中可能很好,但用户可以将此字段弄乱,甚至将其完全关闭。在corporateland中可能很好,但是用户可以破坏这个字段,甚至完全关闭它。我正在考虑从网关创建一个SessionID,并将其附加到应用程序的请求中。然后在应用程序中放入一些代码来检查SessionID是否处于活动状态。我想你说的是类似的话,但要更有条理,哈哈。我会走你说的路线。谢谢。我正在考虑从网关创建一个SessionID,并将其附加到应用程序的请求中。然后在应用程序中放入一些代码来检查SessionID是否处于活动状态。我想你说的是类似的话,但要更有条理,哈哈。我会走你说的路线。谢谢