首页 / 网页编程 / ASP.NET / ASP.NET 2.0中保证应用程序的安全
ASP.NET 2.0中保证应用程序的安全2008-02-16 天极 陶刚成员和角色管理器提供程序--现在ASP.NET 2.0包含了内建的成员和角色管理服务。由于这些服务都是提供程序驱动的(provider-driven),你可以轻易地变更它,或者用自定义实现来代替它。登录控件--新的登录控件为站点的基于认证和授权的UI(例如登录窗体、创建用户窗体、密码取回、已登录用户或角色的定制UI)提供了基本模块。这些控件利用ASP.NET 2.0中的内建的成员和角色服务与站点所定义的用户和角色信息交互操作。大多数Web应用程序的一个重要的部分是辨别用户并控制资源的访问权。检测请求的实体(entity)身份的操作就是认证(authentication)。通常,为了进行认证,用户必须提供凭证,例如帐号/密码。一旦认证过的身份是有效的,就必须检测该身份是否能够访问指定的资源,这个过程就是授权(authorization)。ASP.NET与IIS一起为应用程序提供认证和授权服务。COM对象的一个重要特性就是,它能够控制那些运行COM对象代码的身份。当COM对象用请求的实体身份运行代码的时候,就称为模仿(impersonation)。ASP.NET框架组件应用程序可以选择模仿请求。有些应用程序还希望根据请求的身份或者根据请求的身份所属的角色来动态地定制内容。ASP.NET框架组件应用程序可以动态地检测当前请求的身份是否属于某种角色。例如,应用程序可能希望检测当前用户是否属于管理员角色,以便为管理员有条件地生成内容。ASP.NET 2.0的成员特性使你创建和管理用户更加容易了。成员特性一般与另外一个叫做角色管理器的新特性一起运作。角色管理器为创建角色和给角色指定用户提供了下层结构。当成员、角色管理器特性和窗体认证一起工作的时候,ASP.NET 2.0就可以为创建、认证和授权用户提供端对端的支持。成员和角色管理器都是用基于提供程序的模型设计的。提供程序从特性所暴露的类和业务逻辑中提取特性的物理数据存储。成员和角色管理器特性都带有Microsoft SQL Server提供程序。成员特性还带有一个用于处理活动目录和活动目录应用程序模式(ADAM)的提供程序。角色管理器特性带有一个能利用Windows Server 2003授权管理特性的提供程序。你可以建立自定义的提供程序,并配置它与成员和角色管理器特性一起使用。使用自定义提供程序的时候,利用成员和角色管理器特性的页面仍然会继续工作,毫无改变。登录控件是一组自定义的服务器控件,它为认证和授权事务提供了公用的用户界面。登录控件利用了成员、角色管理器和窗体认证特性中的功能。认证和授权ASP.NET与IIS一起支持使用基本的、Digest和Windows认证。ASP.NET支持微软Passport认证服务,它支持单点登录服务和用户配置服务。ASP.NET还支持一种使用基于窗体认证的强大的服务。基于窗体的认证使用Cookie来认证用户,并允许应用程序执行自己的凭证验证过程。我们要认识到,ASP.NET认证服务是受到IIS提供的认证服务制约的。例如,为了在IIS应用程序中使用基本认证,你就必须使用Internet服务管理工具来配置应用程序以使用基本认证。ASP.NET提供了两种授权服务:◆检查ACL(访问控制列表)或资源权限,看某个认证过的用户是否能够访问该资源。◆URL授权,它批准一个身份使用一定的Web空间。为了演示它们的差别,我们来看一个例子,假设某个应用程序允许匿名用户使用IUSR_MYMACHINE帐号访问。当某个ASP.NET页面(例如"/default.aspx")的请求通过认证之后,就会依据该文件(例如"c:inetpubwwwrootdefault.aspx")的ACL进行检查,看IUSR_MYMACHINE帐号是否有权限读取这个文件。如果有权限,就对访问进行授权。如果Web内容位于NTFS卷中,并且已经配置了虚拟目录使用Windows认证,文件的授权就会自动地执行。