ASP.NET开发知识总结
1、统一异常处理
某商城采用的异常处理方式,是全局统一捕捉,统一处理
思路:
一、定义异常过滤器

实现 MyExceptionFilter : FilterAttribute,IExceptionFilter,重写OnException方法,
IExceptionFilter会在出现异常的时候调用
二、配置过滤器

注册MyExceptionFilter

使用:
例如:我们在controller 抛的异常即会被MyExceptionFilter 自动捕获。

2、统一身份验证
商城身份验证:
1、可自由配置,针对哪些页面,甚至哪些功能需要进行身份验证
2、全局性,全局功能可以调用同一套身份验证体系。
思路:
1、配置过滤器,并自定义身份校验逻辑

2、代码: 需重写OnAuthorization()方法

3、身份校验

在查看产品明细时,就需要对当前用户的身份进行验证。
3、权限控制
商城权限控制适用场景:
1、可适应单角色控制
2、可适应混合角色控制(用户可能为角色1,同为也可能为角色2)
3、可支持功能扩展
4、权限控制粒度:功能点
原理:MVC中Url的执行是按照Controller->Action->View页面, ASP.NET MVC允许我们创建action过滤器Filter,我们都知道在Action上使用的每一个 [Attribute]大都是自定义的Filter。
mvc提供四种类型的Filter接口:IActionFilter,IAuthorizationFilter,IExceptionFilter,IResultFilter,这四种Filter足以满足我们所要实现的功能,它还提供了几个现
我需要的使用的是IActionFilter.
具体实现:
、定义一个自定义的Action拦截器,继承ActionFilterAttribute接口

2、重写onActionExecuting方法,该方法 在调用操作方法前调用。在该方法内写自己的权限处理逻辑。

3、定义两个属性:ModuleCode 和 ActionCode ,顾名思义,一个是模块编码,一个是功能点编码

4、比如我要对"取消产品线经理"进行权限控制,此时,每次用户使用这个方法时,都会对用户的权限进行校验后,再
真正执行CancelProductUserRole()方法。

5、过滤器注册

6、自己根据系统实际的业务需求初始化功能点
ASP.NET开发知识总结的更多相关文章
- (转)【ASP.NET开发】获取客户端IP地址 via C#
[ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己 ...
- 网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
- Cookie详解、ASP.NET核心知识(7)
无状态的http协议 1.回顾http协议 Http协议是请求响应式的,有请求才有响应,是无状态的,不会记得上次和网页“发生了什么”. 关于http协议的这种特点,黑兔在前面的这三篇博文中进行了详细的 ...
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...
- 下一代Asp.net开发规范OWIN(1)—— OWIN产生的背景以及简单介绍
随着VS2013的发布,微软在Asp.Net中引入了很多新的特性,比如使用新的权限验证模块Identity, 使用Async来提高Web服务器的吞吐量和效率等.其中一个不得不提的是OWIN和Katan ...
- ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上
一.前言 大家都知道,在之前,我们Asp.net 的网站都只能部署在IIS上,并且IIS也只存在于Windows上,这样Asp.net开发的网站就难以做到跨平台.由于微软的各项技术的开源,所以微软自然 ...
- 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?
首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...
- 谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)
在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列举了国内外用ASP.NET开发的大型网站有哪些.最后提到了 ...
- 基于微软平台IIS/ASP.NET开发的大型网站有哪些?
首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/Java平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...
随机推荐
- Waiter.js
var Waiter = function() { var dfd = [], doneArr = [], failArr = [], slic ...
- init函数和匿名函数
init函数: 基本介绍: 每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数前被调用. 案例说明: //init函数,通常可以 ...
- MySQL-第一篇认识MySQL
1.什么是mysql mysql是一种关系型数据库,是瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品. 2.mysql的安装 下载mysql-installer-community- ...
- 线程休眠只会用 Thread.sleep?来,教你新姿势!
线程休眠是 Java 开发经常会用到的一个手段,就是让当前线程睡一会儿,睡醒之后再继续运行. 咱大多数程序员,多线程虽然学得不好,但线程休眠,无人不知,无人不晓,也都会用,不就是用 Thread.sl ...
- C++中的布尔类型和引用
1,C++ 中的布尔类型: 1,C++ 在 C 语言的基础类型系统之上增加了 bool: 1,C 语言中,没有 bool 类型存在,往往都是用整型代替 bool 类型,常用 0 表示假,用 1 表示真 ...
- mysql双主+keepalived架构
架构展示 操作系统 centos6.5 数据库 mysql5.7 master1 10.0.254.148 master2 10.0.254.147 VIP 10.0.254.88 (keepaliv ...
- 【JMeter4.0】二、JMeter4.0安装与配置
二.安装配置JMeter jmeter是一个纯java工具,因此,JDK必不可少,现在最新版的jmeter是4.0,建议使用1.8及以上的JDK安装配置JDK,如没有,请见:[JMeter4.0]一. ...
- 【知识强化】第五章 中央处理器 5.1 CPU的功能和基本结构
那么在前四章我们已经把数据的表示和运算,存储系统和指令系统都已经给大家讲完了.那么从这一章开始,我们将要讲解中央处理器的内容.那么这一部分内容我们就进入到我们计算机组成原理的一个深水区,它是我们计算机 ...
- shell判断/bin目录下date文件是否存在
- Django——Ajax相关
Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数 ...