MVC项目开发中那些用到的知识点(登录权限认证)
话说从开始接触MVC到现在也有一段时间了,记得好像是从2012年8月初开始做项目的。就记录一下自己所用到的且认为重要的知识点吧。
首先做的便是一个登录,那么就用到了登录权限认证:
public class UserAuthentication : AuthorizeAttribute{public UserToUrlEnum UserToUrlEnum { get; set; }public UserAuthentication(){this.UserToUrlEnum = UserToUrlEnum.Login;}/// <summary>/// 视图响应前执行验证,查看当前用户是否有效/// </summary>public override void OnAuthorization(AuthorizationContext filterContext){if (filterContext.HttpContext.Session.IsNewSession && string.IsNullOrEmpty(HttpContext.Current.User.Identity.Name)){switch (this.UserToUrlEnum){case UserToUrlEnum.Login:{HttpContext.Current.Response.Redirect("~/Account/Login", true);}break;}}}}
此类首先有继承AuthorizeAttribute,重载OnAuthorization此方法,以便与在每次触发Action之前调用此方法,检验是否已经登录以及用户是否已经过期。如果过期或者没登录,那么就会自动返回到登录页面,要求登录。
刚刚说到了每次触发Action之前调用OnAuthorization此方法,那么如何触发呢:
[UserAuthentication]public ActionResult RoleManagerPage(){return View();}
只需要在要检验的Action前加上该属性标识即可。也可以加到整个控制器上面。代码如下
[UserAuthentication]public class SystemManagerController : Controller
那么此控制器下的每个Action在执行的时候都会做用户登录权限的认证。
用户如果没有登录,而是通过Url直接访问,那么就会跳转到登录页面,要求登录;或者用户长时间无操作,那么之前登录的用户将会过期,同样会跳转到登录页面。
当然还要在配置文件System.Web节点下添加
<authentication mode="Forms"> <forms loginUrl="~/Account/Login" protection="All" timeout="30" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="~/Home/Index" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/> </authentication>
MVC项目开发中那些用到的知识点(登录权限认证)相关推荐
- MVC项目开发中那些用到的知识点(Asp.Net Mvc3.0 Areas)
前言 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际的开发中,随 ...
- MVC项目开发中那些用到的知识点(MVC IModelBinder)
前言 本节主要来记录一下客户端发送请求的参数自动绑定为强类型的成员属性或方法参数也就是Model的绑定体现在从当前请求提取相应的数据绑定到目标Action方法的参数. IModelBinder 用于进 ...
- uni-app看图项目开发中遇到的小问题/知识点(持续更新)
一.若后台返回的数据带如/d的换行字符,要用<text>标签包裹 二.动态替换url中的id data(){return{ id:0, } url=`/${this.id}/` 三.分页的 ...
- React项目开发中的数据管理
原文链接:https://blog.csdn.net/hl582567508/article/details/76982756 redux中文文档:http://cn.redux.js.org/ Re ...
- 项目开发中常用JS表单取值方法
项目开发中常用JS表单取值方法 一.常用表单基本取值方法(form1为表单名称,TextBox1为控件ID,以文本框为例,html控件与web服务器控件是一样的) 1.form1.Te ...
- aspnet是前端还是后端_项目开发中无法回避的问题:前端和后端如何合作和并行工作?...
项目开发中无法回避的问题:前端和后端如何合作和并行工作? 前端,后端要想非常愉快的合作开发和集成,那最开始第1步就是要定义一套共用的数据模型接口.这一步是所有工作可以顺利进行的前提. 数据模型接口之后 ...
- ssh项目同时使用mysql跟sqlserver数据库_MSSQL_如何把sqlserver数据迁移到mysql数据库及需要注意事项,在项目开发中,有时由于项目 - phpStudy...
如何把sqlserver数据迁移到mysql数据库及需要注意事项 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Serve ...
- IntelliJ IDEA 项目开发中各个目录的关系
项目根目录(Project Root):本地硬盘中存放项目内容的根目录 项目名称(Project Name):IDEA 保存的项目名称,默认和项目根目录的名称相同,可以修改.有啥作用?通过 IDEA ...
- 项目开发中发布更新文档备注
项目开发中 经常会遇到 某一个团队成员更新了,配置文件但是没有及时沟通导致项目发布后出现异常的情况. 这时就需要一个项目更新发布的规范说明文件,比如每次更新更改了哪些,进行文档备注. 更新的脚本文件也 ...
最新文章
- VC使用ActiveX控件常见问题
- linux c 随机函数 rand srand 介绍
- linux下yum安装最新稳定版nginx
- python设计拼图小游戏_教你用Python自制拼图小游戏,轻松搞定熊孩子
- 天翼云centos7.5系统挂载磁盘
- leetcode-7-整数翻转
- Day1 -Python program
- 客服会话 小程序 如何发起_小程序、公众号、App三者如何融合布局?这里有一份避坑指南...
- 个人学习进度(第十六周)
- python字符串计算加减乘除代码_Python 70行代码实现简单算式计算器解析
- git 无法 push 远程仓库 【Note about fast-forwards】
- osx10.15.5降级成10.3.3
- 【软件测试】你的简历出现这些问题?没人要也是有原因的
- Java io流使用相对路径读取文件
- 12000字解读元气森林:套利与降维的游戏
- 万字案例 | 用Python建立客户流失预测模型(含源数据+代码)
- Djano之写api使用django_rest_framework【海瑞博客】
- c语言 输出等腰梯形,梯形是什么样子
- jquery name选择器
- 批量删除电脑或手机中的空文件夹