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


    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:点击下载

  • 相关阅读:
    MySQL 数据库入门操作
    select count(*)和select count(1)
    Oracle instr 及 like
    myeclipse添加svn
    Lanucherr 默认显示第几屏
    【毕设】班级管理系统——易搜
    【毕设】班级管理系统——找回密码模块
    【毕设】班级管理系统——登录模块
    【毕设】班级管理系统——系统介绍
    快速生成扇形图
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4430385.html
Copyright © 2020-2023  润新知