• 学习MVC之租房网站(六)-用户登录和权限控制


    在上一篇<学习MVC之租房网站(五)-权限、角色、用户管理>完成了权限、角色、用户的增删改查,现在将基于前面完成的内容,进行后台用户登录和权限控制功能的开发。


    一、用户登录

    用户登录涉及到密码的MD5校验、验证码、Session的保存等。基本过程为检查输入数据的合法性(前端用Validform控件、后端用DataAnnotation标签),合法性检查通过之后对比验证码然后对比用户名和密码,如果吻合则记录Session,登录成功,跳转到首页。

    主要注意验证码的问题,一次登录失败后,要立即刷新验证码,不然验证码就失去了作用。可以使用基于Session封装的TempData,数据被读取一次后便失效。

     


    二、权限控制

    1. 自定义Attribute标签

    自定义HasPermissionAttribute标签,用于在需要权限控制的方法上标记。[AttributeUsage(AttributeTargets.Method,AllowMultiple =true)]设置了该自定义标签用于对方法的标记,而且可以多次使用。

     

    2. 实现OnAuthorization方法

    AuthorizeFilter实现了IAuthorizationFilter接口,在每个控制器的方法被调用之前都会首先执行OnAuthorization方法,权限控制可在这儿进行。Filter是ASP.NET MVC对面向切面编程思想的实践,在权限控制、异常处理等方面,可以极大地提升代码的复用。

    OnAuthorization中进行判断的流程为:该方法是否打了HasPermissionAttribute标签、是否登录、是否有权限。

     

    3. 权限控制

    在需要接受权限控制的方法上加上HasPermission标签,因为设置了AllowMultiple =true,所以可以进行多项权限的检查。

     

    注:

    课程内容来自如鹏网(www.rupeng.com),专注于大学生就业的在线教育平台;

    ASP.NET MVC课程 http://www.rupeng.com/News/9/640.shtml

    欢迎关注我的个人公众号【菜鸟程序员成长记】

  • 相关阅读:
    2.11 Go接口内部实现
    2.08 Go之类型分支(switch判断空接口中变量的类型)
    2.08 Go之使用空接口实现保存任意值的字典
    2.07 Go之接口和类型之间的转换
    1.28 Go之接口的嵌套组合
    2.11 Go之error接口
    libpng.md
    5_中间件.md
    8_多服务运行.md
    6_模板与渲染.md
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/6753922.html
Copyright © 2020-2023  润新知