构建Web应用程序结构

来源:互联网 发布:seo技术web678.cn 编辑:程序博客网 时间:2024/06/07 18:28

构建网页应用程序结构

这里使用这种类型的基本功能为例,也可以使EFS在申请其它应用相同的逻辑与设计时变得简单。该例子的目标是让一个外部源(当然内部源也是可以的)能够通过安全的HTTPS通道来访问数据。文件将不仅可以访问本地Web服务器上,但我们还需要通过虚拟主机配置访问其他文件服务器的一个虚拟目录。这样配置起来会更困难些,但它反映了实践中我们要遇到的真实的部署要求。访问WEB服务器上的文件是微不足道的。当我们需要访问其它服务器上的资源时,我们必须要考虑安全验证的方法,应用程序池用户上下文,以及内部共享设计。我们还要解决需要坎伯洛身份验证与这样的情形,以及授权一台服务器进行授权验证的利与弊。

我们要做许多重复的步骤,因为IIS在不同工作方式具有不同的特性,我们使用多种不同的身份验证机制来实现上述对比。依我的经验,许多人在IIS验证都会感到困惑甚至在设计访问模型时犯错误,这个例子的目的是简单介绍一个设计方案,之后在这个方案上建立一个新方案。让我们了解要满足特定的要求到底要做些什么。在每一步骤中,我们将使用示例说明认证机制的工作以及何种状况下不工作。让我们明白验证机制的作用与否,知道什么行不通,知道什么是有价值的。

访问概述

  我们将在Web服务器上建立访问虚拟目录,用户在登录后可以访问虚拟目录。我将从我认为是典型案例的一个直接例子开始讲起,强调在站点应用中,根据我们的访问要求,如何使用及为什么使用验证和应用程序池上下文。在这里,我们不采用EFS。虽说这只是一个简单的示例,但是对于那些不太熟悉IIS身份验证的人来说,验证过程中的用户属性集的细节可能会有一些困惑。事实上,我见过很多已经成功站点部署为超特权的访问权限的实例,而那些都是没有完全了解模型的结果。

web访问与认证

  我们设计要求为已授权用户通过HTTPS方式来访问互联网。我们假设两个用户,我们称呼他们为史蒂夫与格雷格,他们使用各自的浏览器来访问互联网数据。他们两人登录后可以查看各自的目录和文件,但我们不希望史蒂夫能够查看格雷格的内容,当然不希望格雷格访问史蒂夫的内容。这里有一台用户可以点击的WEB服务器,它配置有指向网络文件夹的虚拟目录,每个用户的网络文件夹在各自的文件服务器上。接下来,你将会看到在不同的服务器上建立虚拟文件夹的意义是多么的重要。这里使用三个登录属性:用户自己(史蒂夫和格雷格),万维网发布服务(IIS),和我们的网站(或网站应用程序)应用程序池。应用程序池会将将站点应用程序的各个进程隔离开来,使各应用程序池之间的配置参数各不相同。当你在IIS上创建一个站点时,应用程序池会自动加载,作为一个默认名为身份运行应用,或者说是应用程序池身份ID。

  我之所以要谈到这一点,因为即使IIS服务作为本地系统运行,通常的网站都是运行在不同验证的用户属性集下。这不仅更安全,而且它允许您指定不同用途的不同身份验证来针对不同的应用程序池。在这些例子中,各个应用程序之间对帐户可访问的数据以及帐户权限进行角色划分。

  如果我们将数据直接存储在Web服务器上,那么我们的工作将变得容易,因为我们可以使用默认的网站和应用程序池设置。可是我们想建立我们的网站,配置我们想要访问文件夹的虚拟目录,对这些文件夹要求身份验证,为用户设置恰当的NTFS权限。