在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)。窗体认证特别适合不只于互联网的应用,而护照验证方式适合于跨站之间的应用,用户只用一个用户名和密码可以访问任何成员站,并且在注销离开时,所有护照相关的信息都会清除,你可以在公共场合放心地使用它。
很不错,支持
information to the deaf of the world on how best to cope with their disability.
wish you can write better and i like it so much
Wow, Great postNice work, I would like to read your blog every day Thanks
I read this post for many times. Now i write this recommend to thank your sharing. I really like it.
I learn more from this post. It’s very worth to read.
Like..It’s very worth to read.
专业知识哈,我也是做.NET开发的呢