欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ASP.NET安全验证

程序员文章站 2024-02-22 12:50:58
...

   对于大多数的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>节被显示拒绝访问的用户显示该窗体。符号“?”表示任何匿名的、未经身份验证的用户。

ASP.NET安全验证

基于窗体的身份授权模式

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

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。