


























2008-03-01 21:18 Jun1st 阅读(384) 评论() 收藏 举报
论坛、电子商务网站、eMail网站、Portal和各种社区网站专注的方面和提供的服务不同。但是,他们都需要提供一个用户管理的功能。新访问者能够创建新的用户,并能用这个用户登陆。而Web服务器需要能够根据登陆的用户的信息,来判断当前用户所能访问的资源和不能的信息。本文是Asp.Net Web Form验证、授权、和用户管理这一系列文章中的第一篇。这一系列文章将会介绍如下的信息:
定制和扩展ASP.NET's security Web controls
本文将会介绍一些重要的网站Security方面的概念,已经Asp.Net在authentication, authorization等方面的功能。
Authentication, Authorization, User Accounts, and Roles
本文中将会经常提到Authentication, authorization, user accounts, and roles这四个问题。因此做一下简单的介绍:
Authenticating Users in an ASP.NET Application
在默认情况下,当一个新的请求到服务器时,这个请求不包括任何的身份认证信息。但是,如果当这个请求包括认证信息时,服务器就会开始对用户进行认证的流程。ASP.NET提供三种认证方式:Windows、Passport和Forms。
Authentication via Windows Authentication
Windows认证有三种方法:
1. Basic authentication
2. Digest authentication
3. Windows Integrated Authentication
这三种方法都通过同样的流程进行认证。当一个匿名的请求到达时,服务器返回一个http 响应(response)以告知用户需要进行授权。客户端浏览器会弹出一个模态窗口,提示用户输入用户名和密码
提供的这些Credential信息会被发送到服务器的Windows User Store去验证。因此要通过验证,每一个用户必须在Organization内有一个Windows帐户。鉴于此,在局域网内使用Windows Authentication是一个可行的选择。
Authentication via Forms Authentication
Windows authentication在局域网内是个不错的选择,而Forms authentication对于面向internet的Web程序就是一个理想的选择。Forms authentication通过一个web form页面,即Login页面,让用户输入用户名和密码,来提供credential信息。因此,但用户试图访问未被授权的资源时,会被自动重定向到Login页面。
当用户提交的credential信息通过验证之后,服务器会为这个用户创建一个Form Authentication Ticket, 并且以cookie的形式存在与客户端。这个ticket可以证明当前用户已经通过验证,因此,从此客户端发起的后续的http 请求就被标识为Authenticated.
下图描述了Form Authentication的流程,
User Accounts and Roles
在Asp.Net 2.0之前,开发人员需要自己负责User和Role的信息,并且要处理User和Role之间的关系。由于Asp.Net 2.0提供了Membership Framework和Login控件,因此实现用户管理变得更加简单。关于Membership framework,这里不再赘述。
Summary
几乎所有的Web Application需要提供用户管理这一功能,例如:对新用户提供注册的功能。允许用户进行登陆,并根据登陆的信息来决定用户能够查看的信息和访问的资源。
在本系列的下一篇文章中,将具体来讨论一下ASP.NET的Form Authentication.
Happy Programming
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。