[ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载、ID型别差异
2024-10-05 21:32:23
[ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载、ID型别差异
原始码下载
ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证、授权等等机制。原始码的位置如下:
ASP.NET Identity 2.x
https://aspnetidentity.codeplex.com/SourceControl/latest#Readme.markdown
ASP.NET Identity 3.x
ID型别差异
ASP.NET Identity 2.x 跟 3.x的一个设计变化就是:IUser、IRole在3.x被移除了。这两个封装使用者、脚色的Entity,在2.x 跟 3.x两个版本之间主要差异是在于面对ID型别的设计概念:
在2.0的时候,把ID型别都使用泛型的TKey来做设计,这样可以松绑「ID型别」被绑死为特定型别的问题,但是却增加了系统的复杂度。
// ASP.NET Identity 2.x
public class RoleManager<TRole, TKey> : IDisposable
where TRole : class, IRole<TKey>
where TKey : IEquatable<TKey>
{
public virtual async Task<TRole> FindByIdAsync(TKey roleId){}
}
在3.0的时候,把ID型别使用String来做设计,这样可以减少系统设计的复杂度,但是变成限定ID型别为String。
// ASP.NET Identity 3.x
public class RoleManager<TRole> : IDisposable where TRole : class
{
public virtual async Task<TRole> FindByIdAsync(string roleId){}
}
笔者现在设计Framework也都采用3.x的写法,毕竟使用String作为ID型别,已经可以符合大部分的使用情景。然后遇到数据库使用int、guid作为ID字段的型别时,在Access层做对应的Mapping,也可以正常的让String型别的ID数据进出数据库。(写数据库string转int、读数据库int转String)
最新文章
- 把图片加载到BufferedImage中
- python脚本实现集群检测和管理
- 如何调试R程序(转载)
- android之Chronometer
- Ansible常用模块及API
- 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布
- RAC 环境下参数文件(spfile)管理
- ContextLoaderListener作用详解
- CROSS APPLY vs OUTER APPLY
- PRD产品需求文档概要
- 转:使用Jazz Automation编写自动化测试
- Smarty for foreach 使用
- 【Lucene4.8教程之二】索引
- 17.java.lang.CloneNotSupportedException
- Java的LockSupport.park()实现分析
- Delphi7 在Windows 7上无法打开Help选项下帮助文档
- Js JSON.stringify()与JSON.parse()与eval()详解及使用案例
- NodeJS基础教程
- springmvc拦截器的简单了解
- HTML各个版本以及对应doctype