惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tor Project blog
月光博客
月光博客
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
N
News and Events Feed by Topic
The Cloudflare Blog
博客园_首页
NISL@THU
NISL@THU
量子位
A
Arctic Wolf
Y
Y Combinator Blog
Spread Privacy
Spread Privacy
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Full Disclosure
C
Cisco Blogs
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
T
Tenable Blog
PCI Perspectives
PCI Perspectives
S
Security Affairs
Forbes - Security
Forbes - Security
Hugging Face - Blog
Hugging Face - Blog
C
CERT Recently Published Vulnerability Notes
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
H
Hacker News: Front Page
S
Securelist
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
Darknet – Hacking Tools, Hacker News & Cyber Security
罗磊的独立博客
S
SegmentFault 最新的问题
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Security @ Cisco Blogs
The Last Watchdog
The Last Watchdog
小众软件
小众软件
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google DeepMind News
Google DeepMind News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
Last Week in AI
Last Week in AI
爱范儿
爱范儿
AWS News Blog
AWS News Blog
MongoDB | Blog
MongoDB | Blog

博客园 - Jun1st

Application之间共享Master Page ASP.NET AJAX 4的Client-Side Template和DataView ASP.NET AJAX 4的Client-Side Template和DataView 体验ASP.NET4之ClientID 体验ASP.NET 4之URL Routing 使用Extension Methods来使IDataReader更加方便 Custom WCF Configuration File USE HttpRuntime.Cache OVER HttpContext.Current.Cache Make Asynchronous Calls from Page IIS and VS Embedded Local Web Server Integrate jQuery with ASP.NET Data Controls Tech-Ed 2008 上海 ASP.NET MVC的分页和导航 LINQ and Pipeline Pattern Why Would a .Net Programmer Learn Ruby On Rails(翻译) ASP.NET MVC之AJAX Asp.Net MVC---Walkthrough Asp.Net MVC 入门篇——Overview Asp.Net 2.0之SqlCacheDependency
Security Basics and ASP.NET Support(翻译)
Jun1st · 2008-03-01 · via 博客园 - Jun1st

2008-03-01 21:18  Jun1st  阅读(384)  评论()    收藏  举报

论坛、电子商务网站、eMail网站、Portal和各种社区网站专注的方面和提供的服务不同。但是,他们都需要提供一个用户管理的功能。新访问者能够创建新的用户,并能用这个用户登陆。而Web服务器需要能够根据登陆的用户的信息,来判断当前用户所能访问的资源和不能的信息。本文是Asp.Net Web Form验证、授权、和用户管理这一系列文章中的第一篇。这一系列文章将会介绍如下的信息:

  • 用户的识别和登陆
  • 使用Asp.Net's Membership Framework来管理用户
  • 创建、修改和删除用户
  • 根据登陆用户的信息,来决定用户能访问的页面和是否提供某些功能
  • 使用Asp.Net's Roles Framework来关联用户和系统定义的角色
  • 管理角色
  • 根据登陆用户的角色,来决定用户能访问的页面和是否提供某些功能
  • 定制和扩展ASP.NET's security Web controls

本文将会介绍一些重要的网站Security方面的概念,已经Asp.Net在authentication, authorization等方面的功能。

Authentication, Authorization, User Accounts, and Roles

本文中将会经常提到Authentication, authorization, user accounts, and roles这四个问题。因此做一下简单的介绍:

  • Authentication: 确认访问者的身份。如果访问者的身份被认证过了,那这个访问者就是authenticated, 否者就是unauthenticated或者anonymous. 大多数网站需要用户提供一些信息,如用户名和密码,来确认用户的身份。这些信息就是用户的credential. 本文主要也将介绍Asp.Net的Forms Authentication.
  • Authorization: 在确认用户的身份之后,需要对用户进行授权来决定用户所能访问的资源和提供给用户的服务
  • User Account: 是用来存储用户信息的。User Account需要存储能够唯一确认用户身份的信息,以及一些相关的信息。
  • Role: Role提供一些定义好的授权规则。当把某一个Role赋给某一个用户时,用户就有了相应的授权。

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

原文地址:http://asp.net/learn/security/tutorial-01-cs.aspx