安全是大多数应用程序开发里不可或缺的一部分。通过确定当前用户(的身份)和应用已制定的安全设置,控制用户使用哪些资源常常是有必要的。这种情形包括验证和授权,以及安全的通信。
用户访问ASP.NET应用程序的第一道障碍是验证,也就是辨别应用程序用户(身份)的过程。(通过验证的用户叫做参与者principal)。安全过程的下一步是授权。这就定义了参与者被允许使用的资源和操作。
ASP.NET支持三种验证方案:Windows、护照(Passport)和表单(form)。在本期专栏里,我们会把重点放在基于Windows的验证上,这要靠Internet信息服务(Internet Information Services,IIS)来验证用户。它利用放在服务器上的用户帐号,并提供了下列验证方法:
Windows验证(这种方法)只适用于放在受控环境里的网站;也就是说,使用Windows登录证书更适合于企业内网(intranet)。Internet网站无法控制用来访问网站的浏览器或者客户机器,而企业内网存在于受控环境里。当浏览器的选择被限制为诸如集成的Windows和摘要的验证方案时,这种控制就是强制性的。
Windows验证方式要求将IIS用作Web服务器。验证模式要进入IIS管理页面在Web网站属性里指定。此外,必须正确地设置web.config文件才能够在ASP.NET应用程序里使用Windows验证。下面的示例在第一行里就实现了这一点;第二行告诉系统将当前登录的用户的信任书传递给浏览器(impersonate):
<authentication mode="Windows"
/>
<identity impersonate="true" />
这些元素都被包含在web.config文件的system.web元素里。