第一篇,多多指教啦!
之前做asp.net的网站只知道Asp.net的身份验证方式有:Windows验证和Forms验证。今天初步了解了下asp.net的Identity技术,顺带了解了它之前的Membership技术。
一、Windows验证:一般用于局域网应用。
二、Froms验证:Windows验证的局限性非常明显,一旦用户有超出本地域控制器范围的外网用户访问网站,就会出现问题。ASP.NET表单验证(Forms Authentication)很好的弥补了这一缺陷。
三、Membership:
使用表单认证能解决基本的身份验证问题。但是,大部分应用程序还包含角色和用户管理以及权限信息的存储问题。因此,我们不得不做下面这些事情:
- 创建用户和角色表。
- 编写访问数据表的代码。
- 提供用户和密码验证的方法。
几乎每一个应用程序,我们都重复着做上面类似的事情。当微软发现这一问题后,在ASP.NET 2.0引入了Membership的重磅级技术方案。很好的解决了WEB应用程序在成员资格方面的常见需求,这些需求包括表单身份验证,存储用户名、密码和用户资料信息 (profile)等。
ASP.NET Membership自身设计的缺陷:
数据库架构受限于SQL Server。
生硬的表存储结构。
系统仅依据关系数据库设计。
不能使用OWIN。
四、Identity:鉴于ASP.NET Membership的弊端,微软又开发一套新的安全框架ASP.NET Identity。
ASP.NET Identity具有以下优势:
统一的框架。
自定义用户信息。
灵活的角色管理。
数据持久性以及兼容性。
- 单元测试能力。
- OWIN集成。
- Nuget包。
相关技术:
OWIN 是一种定义 Web 服务器和应用程序组件之间的交互的规范 。这一规范的目的是发展一个广阔且充满活力的、基于 Microsoft .NET Framework 的 Web 服务器和应用程序组件生态系统。
Katana 是开源的的OWIN框架,主要用于微软.NET应用程序。Katana 2.0 将随 Visual Studio 2013 一起发布。 新版本有两个值得关注的方面:
- 为自托管提供核心基础结构组件。
- 提供了一套丰富的验证中间件(包括 Facebook、Google、Twitter 和 Microsoft Account 这样的社交提供商)以及适用于 Windows Azure Active Directory、cookie 和联合身份验证的提供程序。
更多信息参考 http://owin.org/
注:本文摘自 http://www.cnblogs.com/liuhaorain/p/3776467.html#t_1,解说不是很详细,若查看详细请参照。