Lisong's Blog


十一月 22nd, 2010

ASP.NET提供哪些身份验证方式?

Learning, by 木公.

在ASP.NET中讨论安全性,首先要解决一个问题:谁有权利进入系统?为了解决这个问题,通常做法就是系统维护一张允许进入的用户的名单。当用户要求进入系统时,系统判断他是否为合法用户。这样一来,问题就被转化为如何有效地判别一个用户是否是系统的有效用户,这个过程称为“Authentication(身份验证)”过程。

接受用户凭据,并根据指定的颁发机构来验证凭据的过程称为身份验证。用户的(或者潜在的应用程序或计算机的)标识被称为安全当事者。客户端必须提供凭据,以便服务器验证当事者的标识。确认标识后,应用程序就能授权当事者访问系统资源。

ASP.NET和IIS一起为用户提供验证服务。ASP.NET有3种用户验证方式,即Windows验证,窗体(Forms)验证和护照(Passport)验证,要激活ASP.NET的身份验证,必须在ASP.NET应用程序的配置文件Web.config中配置<authentication>元素,该元素会具有下表中列出的值。

<authentication>元素的值:

说明
None ASP.NET不采用身份验证方式
Windows ASP.NET将采用Windows身份验证方式,IIS根据应用程序的设置执行身份验证(基本、简要或集成Windows)。要使用这种验证方式,在IIS中必须禁用匿名访问。
Forms ASP.NET身份验证用Cookie来保存用户凭证,并将未经身份验证的用户重定向到自定义的登录页。它通常与IIS选项一起使用以允许匿名访问应用程序。
Passport 身份验证是通过Microsoft的集中身份验证服务执行的,它为成员站点提供单独登录和核心配置文件服务。

例如,打开ASP.NET应用程序的web.config文件,加上如下的配置元素,将为应用程序启用基于窗体的身份验证。

<configuration>

<system.web>

<authentication mode="Forms" />

</system.web>

</configuration>

由于验证方式各不相同,因而这3种验证方式在使用范围上也有很大的不同,Windows验证方式只适用于在受控环境里的网站;也就是说,更适合于企业内网(Intranet)。窗体认证特别适合不只于互联网的应用,而护照验证方式适合于跨站之间的应用,用户只用一个用户名和密码可以访问任何成员站,并且在注销离开时,所有护照相关的信息都会清除,你可以在公共场合放心地使用它。

Back Top

回复自“ASP.NET提供哪些身份验证方式?”

评论 (8) 引用 (0) 发表评论 引用地址
  1. information to the deaf of the world on how best to cope with their disability.

  2. wish you can write better and i like it so much

  3. Wow, Great postNice work, I would like to read your blog every day Thanks

  4. I read this post for many times. Now i write this recommend to thank your sharing. I really like it.

  5. I learn more from this post. It’s very worth to read.

  6. Like..It’s very worth to read.

  7. 专业知识哈,我也是做.NET开发的呢

  1. 没有任何引用。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


无觅相关文章插件,快速提升流量