如果将 ASP.NET 配置为使用 Windows 身份验证,则 IIS 使用配置的 IIS 身份验证机制执行用户身份验证。启用Windows身份验证的步骤如下:
(1) 配置 Web.config文件。
<authentication mode="Windows" />
(2) 首先启动系统的Internet 信息服务(IIS),右击网站本目录的节点,选择【属性】命令。如图12.3所示。
图12.3 启动IIS
(3) 在打开的窗口中选择【目录安全性】选项卡,然后单击"匿名访问和身份验证控制"栏中的【编辑】按钮,如图12.4所示。
图12.4 选择【目录安全性】选项卡
(4) 在弹出的窗口中选中"匿名访问",即:允许匿名访问。然后填写用户名和密码,以及选中"集成Widows身份验证"。如图12.5所示。
图12.5 填写Windows用户名和密码
通过上面的设置就完成了基于Windows的身份验证。每一个虚拟目录的Windows身份可以继承根目录的身份,也可以有自己的Windows身份,可以根据需要,设定每个Windows身份的权限。比如基于用户组的Windows身份验证,可以在Web.config中添加如下代码:
<authorization>
<deny user="DomainName\UserName" />
<allow roles="DomainName\WindowsGroup" />
</authorization>
在实际应用中,Windows身份验证往往要结合下游资源(例如数据库)共同来完成身份验证的。
本章小结
本章主要介绍了在ASP.NET中如何实现Web程序的安全控制。首先简要介绍了Web应用程序的安全控制原理和流程,然后介绍了Web.config文件的基本知识,最后着重介绍了在实际应用中常用到的两种安全控制模式:基于窗体的身份验证和基于Windows的身份验证。