ASP.NET安全验证

   对于大多数的Web应用程序而言,身份验证和授权管理是非常重要的部分。我们在进行ASP.NET网站开发的过程中必须了解和掌握ASP.NET的身份验证,并学会它的授权管理。

ASP.NET的安全模式:

1、Windows身份验证

基于Windows的身份验证,请求直接发给IIS,进行验证过程。通常在内联网环境中使用,要让ASP.NET应用程序使用基于Windows的身份验证,首先要创建一些用户和组。

2、Passport身份验证

用户输入证书进行验证,如果验证成功,用户可以获得授权。这是一种对参与某种计划的所有站点的用户进行身份验证的方法,用户只需要登陆一次,如果成功通过了身份验证,可以自由遍历所有的成员站点,Passport还为成员站点提供了核心的配置文件服务。

3、窗体身份验证

Windows和Passport身份演这个对于现实的Internet应用程序几乎都不适用。Winows身份验证局限性太大,因为Web应用程序用户必须具有该应用程序的域中的Windows账户。Passport不是免费的,而且安全性也有待验证。因此,窗体身份验证才是Web开发人员理想的身份验证机制。

通过调整应用程序的根目录下的Web.Config文件,可以为窗体身份验证建立一个ASP.NET应用程序。

 
      
        
      
      
        
      
 

节指示用户定义的登录窗体的URL。ASP.NET仅向节被显示拒绝访问的用户显示该窗体。符号“?”表示任何匿名的、未经身份验证的用户。

ASP.NET安全验证_第1张图片

基于窗体的身份授权模式

允许用户访问整个应用程序或其特定资源的一种流行的模式。

IIS接受请求,但不进行处理,而传递给ASP.NET应用程序。

这个结构必须应用于Web.Config文件。首先使用元素,可以拒绝所有的匿名用户访问应用程序。只有验证用户才能访问应用程序包含的页面。如果请求者未通过验证,就执行元素中定义的内容。


元素的主要属性

属性 说明
name 这是赋予cookie的名字,该cookie用于在请求之间保存用户,该默认值是.ASPXAUTH
loginUrl 如果没有找到有效的验证cookie,就指定请求重定向的URL
protection

指定要应用于验证cookie的保护级别,它有一下4个设置:

All:应用程序使用数据有效性验证和加密机制来保护cookie,这是默认设置

None:不加密cookie,但不对它进行数据有效性验证

Validation:进行数据有效性验证,但不加密cookie

path 指定应用程序所存储cookie的路径。在大多数情况下应用“/”,它是默认设置
timeout 指定cookie过期的时间(分钟),其默认值为30分钟
cookieless 指定在进行验证和授权过程中,基于窗体的身份验证过程是否使用cookie
defaultUrl 指定登录成功后默认跳转的URL
domain 指定要与窗体身份验证一起发送的域名

通常用户利用forms验证访问受保护资源,包括以下4个步骤:

1、假设用户请求受保护的页面Default.aspx.

2、HTTP模块调用Forms验证服务截取来自用户的请求,并检查其中是否包含用户凭据。

3、如果没有发出任何用户凭据,将自动转向用户登录页面Login.aspx。

4、原请求页面地址Default.aspx将以ReturnUrl值的形式附加在登录页面Login.aspx的URL地址后。当用户通过验证后,应用程序将根据ReturnUrl值进行页面重定向,以便访问Default.aspx。


你可能感兴趣的:(ASP.NET网站开发)