论文摘要:在web应用程序开发中,经常会涉及与用户交互的过程。不同用户的权限是不同的,要实现不同用户的权限分配,就要涉及用户、角色的管理、用户的登陆等几方面的问题。ASP.NET2.0的成员和角色管理简化了用户管理的功能。本文主要针对ASP.NET应用程序身份验证的概念,介绍了各种身份验证模式并进行了比较, 阐述了选择身份验证模式的机制,并给出了一种基于窗体身份验证模式的实现方法。
论文关键词:身份验证,验证,身份验证,身份验证
一、问题描述
1、问题的提出
在网站的开发中,大多数都会碰到与用户的交互。用户可以利用应用程序来完成自己的业务或实现一些功能,比如发布信息,获取信息等等。为了交互应用的需要,这些用户需要保存到存储器中,不同用户的权限不同,比如:管理员可以配置应用程序,可以增、删、改用户信息,而普通的用户只能浏览网站。要实现不同用户的权限管理,首先就要对不同的用户的身份进行确认,这就是本文要讲述的主题———身份验证。
2、身份验证的概念
什么是身份验证?web应用程序中如果想要不同的用户有不同的资源访问权限,就要对访问该资源的用户进行辨别,应用程序需要知道该用户是谁,以确定访问者的身份是否有权限进行访问和操作。这一过程就是身份验证。
二、ASP.NET2.0提供的4种身份验证模式
1、Windows验证
使用这种身份验证模式时,ASP.NET依赖于IIS对用户进行验证,并创建一个Windows访问令牌来表示已通过验证的标识。IIS提供以下几种身份验证机制:
l基本身份验证
l简要身份验证
l集成windows身份验证
l证书身份验证
l匿名身份严整
2、Passport(护照)身份验证
在通常的基于用户名和密码的身份验证程序中,网站开发人员一般要处理下面几个过程:
l一个用于用户输入用户名和密码的图形界面
l一个用来保存用户信息的数据库
l实现用户验证
l注销功能
如果自己来编写登陆程序的话,上面的步骤是必不可少的。ASP.NET提供了Passport身份验证模式,由Microsoft提供集中身份验证服务,完全实现了上面提到的4个方面,这些功能由System.Web.Security.PassportIdentity类来实现。网站开发人员只需要在自己的代码中实例化System.Web.Security.PassportIdentity类,调用其相关的方法就可完成基于用户名和密码的身份验证程序。
3、Forms(窗体)身份验证
Forms身份验证是使用比较多的一种验证方式,它不需要依赖任何其他的程序或服务,完全靠网站开发人员来进行控制,因此,在web应用程序中被广泛使用。这种验证方式使用客户端重定向功能,将未通过身份验证的用户转发到特定的登录窗体,要求用户输入其凭据信息(通常是用户名和密码)。这些凭据信息被验证后,系统生成一个身份验证票证(ticket)并将其返回客户端。身份验证票证可在用户的会话期间维护用户的身份标识信息,以及用户所属的角色列表。
4、None
使用这种身份验证模式,表示你不希望对用户进行验证,或是采用自定义的身份验证协议。
三、ASP.NET身份验证配置架构
ASP.NET身份验证方式可以在web.config里设置,下面介绍与身份验证有关的配置架构。
1、authentication元素
在web.config里,authentication元素配置ASP.NET身份验证支持,使用mode属性指定应用程序的默认身份验证模式。
mode=”Windows”,采用windows身份验证
mode=”Forms”,基于窗体身份验证
mode=”Passport”,采用护照身份验证
mode=”None”,不指定任何身份验证
2、Forms元素
Forms元素为基于窗体的自定义身份验证配置ASP.NET应用程序。在URL中发送Forms身份验证票时,如果匿名标识票、Forms身份验证票、会话ID和用户数据的组合超出允许的最大URL所允许的长度(一般是255个字符),则请求会失败并显示”400-BadRequest”错误。
3、credentials元素
credentials元素设置允许选择在配置文件中定义名称和密码凭据。用户还可以实现自定义的密码架构,以使用外部源(如:数据库)来控制验证。Credentials元素passwordFormat定义如下:
lClear:指定密码不加密
lSHAI:指定使用SHAI哈希算法给密码加密,此值为默认值
lMD5:指定使用MD5哈希算法给密码加密
4、passport元素
passport元素指定在使用Passport方式验证时用户要重定向到的登陆页。仅当authentication元素的mode属性设置为Passport时,此元素才有效。Passport身份验证是由Microsoft提供的集中身份验证服务,该服务为成员站点提供单一登陆和核心配置文件服务。若要使用Passport身份验证,在使用前,必须将站点注册到Passport服务,然后接受许可协议并安装.NETPassportSDK。
5、machineKey元素
machineKey元素对密钥进行配置,以方便其用于对Forms身份验证Cookie数据和视图状态数据进行加密和解密,并将其用于对进程外会话状态标识进行验证。 1/2 1 2 下一页 尾页 |