码迷,mamicode.com
首页 > 其他好文 > 详细

Forms身份验证和基于Role的权限验证

时间:2015-04-15 23:17:52      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

Forms身份验证和基于Role的权限验证

从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吧。

Demo:点击下载

Forms身份验证和基于Role的权限验证

标签:

原文地址:http://www.cnblogs.com/Leo_wl/p/4430385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!