日期:2011-01-02 浏览次数:20404 次
所有.NET的应用程序都将其信息保存在一个基于XML的配置文件里。一般来说,这个.config配置文件位于应用程序可执行文件的目录下。但是,Web应用程序会使用位于应用程序根目录下的web.config文件。用于ASP.NET应用程序的web.config包含的信息和其应用程序大多数的操作都相关。现在让我们剖析一个web.config示例文件,看看你会在其中找到哪些和安全相关的设置。
配置文件的设置和区段
首先,我们看一下Listing A里的配置文件的整体结构。这个文件作为XML文档必须有一个根元素把其他所有的元素都包括进来。很奇怪的是,在这里根元素是
自定义错误页面
验证
Windows验证通过Windows的系统帐号来验证用户,例如活动目录(Active Directory)。Windows验证是最安全的验证形式,对于程序员来说这种模式是很简单的,因为整个过程都是由操作系统来处理的。但是,网站的每个用户都需要一个系统帐号,所以这种模式会被限制在企业内部网(intranet)的应用程序里。
Passport验证使用护照来验证用户,它是第二安全的验证方式。其最好的用武之地是大型的、活动的Internet电子商务应用程序,这些程序会验证用户的服务使用费。这种模式是.NET所选择的验证方法。
Forms验证是安全性最低的验证方法,因为必须要由你的应用程序自己来处理验证过程。但是,这是最有可能在你Internet应用程序上使用的模式,因为它所需要的管理和维护是最少的。
查一下Listing A你就可以看到这个网站使用了Forms验证。你可以指定一个自己希望的域名。在这里,我使用的是.ASPXAUTH,其功能和名称其实是名不符实的。我只不过是把这个元素放进去,用以提醒我它的确有个名字。
你还会看到,我已经为登录页面指定了相关的URL:/LoginForm.aspx。当用户试图访问一个安全页面时,无法通过验证的用户就会被引导到这个URL。匿名用户,如果你允许他们访问你的授权区域的话,就不会被自动送到这个页面。
你可以指定由
尽管你可以把用户名保存在
防止用户在每个页面都必须登陆的唯一方法是把数据保存在一个通用的数据仓里,例如数据库。不要把用户的信任书保存在web.config文件里的另一个原因是,服务器必须重启,以重新加载新的信任书。这一问题应该会在未来的操作系统里得到修正,但是对于运行IIS5的Windows 2000服务器版来说,这是个已经具有的问题。
诸多优点
你现在已经看到了如何使用XML文件里的元素,IIS需要这些元素来管理ASP.NET Web应用程序的元素。这个配置模型具有诸多你已经体会到了的优点。由于IIS通过监视web.config文件来进行更改,所以配置文件的任何变动都会立即体现出来:这样就不需要服务器的重启。