在创建ASP.NET应用时,ASP.NET为我们提供了配置文件来配置session state、授权和认证等等。有两个配置文件:
(1)Maching.config——用来定义server的配置,安装.net framework的时候就安装了此文件,位于%winDir%\Microsoft.Net\Framework\yourVersion\Config目录下。此文件中的配置是应用于本机所有虚拟目录的。
(2)Web.config——针对各个具体的web应用的配置,在各自ASP.NET应用的目录下。每个ASP.NET有自己的web.config文件,而此应用下的每个子目录也可以有自己的web.config文件,而且下级的web.config文件中的设置覆盖上级web.config文件中的设置。
ASP.NET 安全基础
开发一个安全的ASP.NET应用必须考虑下面的基本的安全装置:
(1)Authentication——检查用户的身份。
(2)Authorization——根据用户的身份确定其能访问哪些资源。
(3)Impersonation——就是一个线程使用不同于其所在进程的身份去执行操作的能力。
System.Web.Security 名字空间中提供了很多关于应用安全的类。如:FormsAuthentication、FormsIdentity和PassportIdentity。具体请查阅MSDN。
ASP.NET应用执行验证
1.验证——通俗地说就是要检查来访者的身份——“来者何人?”
ASP.NET验证
ASP.NET使用authentication provider来实现验证,这些provider包括:
◆IIS authentication
◆Windows-based authentication
◆Forms-based authentication
◆Passport authentication
◆Anonymous authentication
下面分别说明之:
(1)IIS 认证。任何Web请求必须先通过IIS来访问ASP.NET应用执行验证,IIS的认证可以通过IIS管理器进行配置。IIS提供了多种认证装置,这包括:
◆Anonymous access——匿名访问。当不需要验证用户身份的时候使用此方式。
◆Basic authentication——基本认证。需要用户提供用户名和密码,但以明文传输。这通常需要和SSL/TLS结合使用。
◆Digest authentication——摘要式认证。和基本认证类似,但不直接传输明文,而是传输Hash值。而且,需要IIS Server必须在一个windows域中,且使用AD来保存用户帐户。
◆Integrated Windows authentication——整合的windows认证。使用windows认证协议通信,使用操作系统中的帐户。
◆Client certificate authentication——客户端证书认证。使用X.509数字证书来验证访问者身份。
(2)基于Windows的认证。ASP.NET应用依赖windows操作系统去验证用户。此为默认选想。验证的过程为:Client端请求一个页面——>IIS检查windows帐户,如果不合法则要求其登录——>用户登录成功后,返回其请求的页面。此验证方式对于有proxy server的情况下不能工作。
(3)基于表单的认证。此认证方式使用HTTP 客户端重定向来重定向未验证通过的请求到一个HTML表单。其过程为:Client端请求一个页面——>ASP.NET检查客户端的cookie,如果没有发现则让用户登录——>用户登录成功后,返回页面和验证cookie给请求者。此验证方式需要开发者写验证逻辑。
(4)Passport认证。由微软提供的集中认证服务。
(5)匿名认证。
2. Form 验证步骤为:
(1)在IIS管理器中设置IIS为匿名访问。
(2)在web.config文件配置为Form认证方式。
(3)建立授权。在web.config文件中配置<authorization>节来设定接收或者拒绝用户访问,还可以设置哪些页面需要认证。
(4)建立一个登录页面。在这个页面上要求用户输入用户名和密码,然后到保存帐户信息的地方进行检查。你可以把帐户信息放在配置文件、注册表、数据库或者AD中。
3. Windows 验证步骤为:
(1)设置IIS为windows认证,选择basic、Digest和Integrated windows其中的一种方式。
(2)配置web.config。
以上介绍ASP.NET应用执行验证
【编辑推荐】