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应用程序。
<system.web>
<authentication mode="Forms">
<forms name="admin" loginUrl="Default.aspx" path="/"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
<authentication>节指示用户定义的登录窗体的URL。ASP.NET仅向<authentication>节被显示拒绝访问的用户显示该窗体。符号“?”表示任何匿名的、未经身份验证的用户。
基于窗体的身份授权模式
允许用户访问整个应用程序或其特定资源的一种流行的模式。
IIS接受请求,但不进行处理,而传递给ASP.NET应用程序。
这个结构必须应用于Web.Config文件。首先使用<authorization>元素,可以拒绝所有的匿名用户访问应用程序。只有验证用户才能访问应用程序包含的页面。如果请求者未通过验证,就执行<authorization>元素中定义的内容。
<forms>元素的主要属性
属性 | 说明 |
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。
下一篇: Java实现简单订餐系统