从Membership到SimpleMembership再到ASP.NET Identity,ASP.NET每一次更换身份验证的组件,都让我更失望。Membership的唯一作用就是你可以参考它的实现,它的数据库创建和扩展方面就真的让人实在无法使用了。

当大家欢呼着让ASP.NET开发走上ASP MVC的正确道路时,身份验证组件却走的更远了:SimpleMembership除了第三方验证的参考价值,它的主键和对领域模型的入侵让它成了摆设,而ASP.NET Identity除了把第三方验证搞的更复杂化外依然没有改进。想起SimpleMembership在code first方面的支持上给我带来的各种麻烦让我现在依然碎碎念。

ASP.NET Identity在Code First这方面虽有改进,但在依赖方面不只是个IdentityUser的继承,竟然还用IdentityDbContext试图搞我的DbContext,你知道我有没有DbContext啊?

幸亏核心都还是基于Cookie的,Forms身份验证也一直可以使用,所以毫不犹豫拿出Forms+FormsAuthentication砍死了SimpleMembership和ASP.NET Identity。这俩货让我这两年赌了无数次,冒着被无数小白和伪实战专家真小白喷的危险我也必须抛弃。还要庆幸权限验证的核心页依然是IPrincipal,使用自定义的RoleProvider可以将权限验证从这俩鸡肋里拯救出来。

1.配置好Web.config

2.清爽的User和Role

3.只需要将2个方法的RoleProvider

4.IAccountService和IUserRepo

只用于演示,依赖注入页简单使用Factory的静态方法。

为了便于演示,使用admin登录的,我们返回admin权限。

5.功能演示:

一想到我没有任何依赖任意测试的Domain Model,只对外接口依赖的Controller,心里真舒坦。登录、退出、admin权限控制,太晚了,不截图了自己跑Demo吧。

点击此处下载本文的示例代码

最新文章

  1. python多线程网络编程
  2. codeforces Hill Number 数位dp
  3. UIView添加手势
  4. tyvj 1049 最长不下降子序列 n^2/nlogn
  5. QQ登入(1)-有客户端直接授权,没客户端web授权
  6. leetcode 349:两个数组的交集I
  7. 转载——有感于三个50岁的美国程序员的生活状态与IT职业杂想
  8. OC最实用的runtime总结,面试、工作你看我就足够了!
  9. Magic Pairs - SGU 119(同余)
  10. Codeforce 215 div1
  11. 用HTTP方式调用gearman任务处理
  12. 设置MySQL最大连接数
  13. 笔记:Maven 项目报告插件
  14. Python环境——安装扩展库
  15. JS实用小函数 数据是否合法或存在 获取当前日期时间
  16. 6.26 py GIL
  17. sudo控制权限简单用法介绍
  18. 使用Visual Studio2013打开Visual Studio2015项目
  19. Android-LoaderManager异步加载数据库数据
  20. 随手记录-linux-Linux目录结构

热门文章

  1. P2657 [SCOI2009]windy数
  2. 【转载】C#, VB.NET如何将Excel转换为PDF
  3. [Java] 集合框架原理之一:基本结构与源码分析
  4. noi题库(noi.openjudge.cn) 1.13编程基础之综合应用 T12 分数求和
  5. 巧妙使用CSS创建可以打印的页面
  6. jQuery UI dialog 使用记录
  7. JavaScript的基本介绍
  8. Celery异步任务队列/周期任务+ RabbitMQ + Django
  9. Python标准库内置函数complex介绍
  10. 【LinuxC】GCC编译C程序,关闭随机基址