从Membership 到 .NET4.5 之 ASP1
需积分: 0 116 浏览量
更新于2022-08-04
收藏 583KB PDF 举报
Membership 到 .NET 4.5 之 ASP.NET Identity
ASP.NET Membership 是 Microsoft 在 .NET Framework 2.0 时代推出的一个身份验证和授权框架,它提供了一个基本的用户管理机制。然而,在实际应用中,我们发现 Membership 只提供了基本的注册、登录功能,但却遗漏了一个非常重要的问题,即用户信息是如何存在数据库中的。
在前两篇文章中,我们已经讨论了如何在一个网站中集成最基本的 Membership 功能,然后深入学习了 Membership 的架构设计。今天,我们将以用户信息为主线,从 SqlMembershipProvider 出发,到 ASP.NET Simple Membership 最后再到 .NET 4.5 中引入的 ASP.NET Identity,看看微软是如何一步一步地改造这套框架的。
我们来看一下 SqlMembershipProvider 是如何保存用户信息的。ASP.NET 2.0 时代,我们需要借助一个 VS 提供的一个工具来帮助我们生成所需要的表。打开 VS 开发者命令行工具,输入 aspnet_regsql,后面简单地连接一下数据库就会帮我们生成以下的几张表:
这些表的结构可以说明很多问题,用户信息的一些基本字段比如用户名、密码以及一些其他登录的信息存储在哪里,角色存储在哪里,角色和用户之间是如何关联的等等。
然而,用户信息字段如何扩展呢? ProfileProvider 来扩展用户信息我们上面讲到有一张表 aspnet_Profile 是专门用来给 ProfileProvider 为扩展用户信息的。它和 MembershipProvider, RoleProvider 一起组成了用户信息、权限管理这样一套完整的框架。
ProfileProvider 可以让我们扩展用户信息,例如,我们可以添加一个 Model 继承 ProfileBase 来为我们新的用户对象建模。在 web.config 配置 ProfileProvider,我们可以在 MVC 站点中实现对我们的用户信息的管理。
我们的 UserProfile 的所有字段都要从基类中获取,基类中以 object 类型存储着这些值。web.config 的配置大家可以看到 profile 里面的 inherits 结点我们设置了我们上一步建立的那个对象,这样我们就可以在代码将 MVC 里面的 Profile 对象转换成我们要的这些类型。
从 Profile 对象中获取当前登录用户的信息,我们可以使用 GetUserProfile 方法来获取当前登录用户的信息。
Membership 到 .NET 4.5 之 ASP.NET Identity 这一系列文章,我们主要介绍了 Membership 的架构设计,SqlMembershipProvider 是如何保存用户信息的,ProfileProvider 是如何扩展用户信息的,以及 ASP.NET Identity 是如何一步一步地改造这套框架的。
药罐子也有未来
- 粉丝: 29
- 资源: 300
最新资源
- 基于c语言的线性链表的实现和应用
- 艾利和iriver Astell&Kern SP3000 V1.20升级固件
- 律师事务所网站建设与管理功能概述
- Python 端口访问邮件提醒工具
- 基于springboot的抗疫物资管理系统
- 基于C语言的二叉树构建及遍历
- 587833617736230KEY_C0091 STM32简易交通灯仿真设计.zip
- 垃圾废物检测19-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 专项资金申报平台需求规范文档解析及关键技术要求
- TMS320F28377原理图
- Docker以及Docker-Compose的安装与卸载
- 艾利和iriver Astell&Kern SP3000 V1.31升级固件
- 基于C语言的图的实现和遍历
- 周勤富恒升职业学校网络安全渗透测试及解决方案第2版.doc
- images(5).zip
- 计算机程序设计员三级(选择题)