[ASP.NET MVC] ASP.NET Identity学习笔记 - 原始码下载、ID型别差异

原始码下载

ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证、授权等等机制。原始码的位置如下:

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)

最新文章

  1. 把图片加载到BufferedImage中
  2. python脚本实现集群检测和管理
  3. 如何调试R程序(转载)
  4. android之Chronometer
  5. Ansible常用模块及API
  6. 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布
  7. RAC 环境下参数文件(spfile)管理
  8. ContextLoaderListener作用详解
  9. CROSS APPLY vs OUTER APPLY
  10. PRD产品需求文档概要
  11. 转:使用Jazz Automation编写自动化测试
  12. Smarty for foreach 使用
  13. 【Lucene4.8教程之二】索引
  14. 17.java.lang.CloneNotSupportedException
  15. Java的LockSupport.park()实现分析
  16. Delphi7 在Windows 7上无法打开Help选项下帮助文档
  17. Js JSON.stringify()与JSON.parse()与eval()详解及使用案例
  18. NodeJS基础教程
  19. springmvc拦截器的简单了解
  20. HTML各个版本以及对应doctype

热门文章

  1. uniGUI试用笔记(十五)通过URL控制参数
  2. MAC自带的SVN进行升级
  3. 一个自动备份mysql数据库的bat文件内容
  4. Windows 7远程桌面连接Ubuntu 16.04
  5. Python Django 开发 4 ORM
  6. MDX 占比同比环比
  7. Could not find acceptable representation
  8. $.ajax()方法参数详解
  9. maven -- 问题解决(一)解决eclipse中maven项目出现的问题
  10. solrcloud使用中遇到的问题及解决方式