1.前言 a.微软对ASP.NET的开发从WebForm到MVC的转变,已经正式过去5,6个年头,现在WebForm和MVC也都越来越完善,小小算来我也已经工作了将近三年,从大学的时候学习ASP.NET WebForm,感觉这就是我们以后吃饭的技术,所以当时可劲的学习拖各种控件,学习做各种各样的小项目,但是没想到的是,从大学最后一学期参加实习开始到现在也就一直没有机会接触ASP.NET WebForm,基本也都是在用MVC开发.我并不是说MVC就比WebForm开发好或者什么的,我只是觉得他们都…
在 Asp.net Mvc 自定义Session (一)中我们把数据缓存工具类写好了,今天在我们在这篇把 剩下的自定义Session写完 首先还请大家跟着我的思路一步步的来实现,既然我们要自定义Session肯定要继承和重写什么东东(因为在框架设计中肯定考虑这些东西,asp.net mvc 架构师不傻的),好吧 确实要继承 SessionStateStoreProviderBase 这个基类.下面我先把代码贴出来,在慢慢解释 /// <summary> /// 分布式session /// &…
asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自定义分页 pager 越来越容易扩展了. HtmlHelper Pager扩展 Pager V1.0 : /// <summary> /// Pager V1.0 /// </summary> /// <param name="helper">HtmlH…
本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定义格式的路由时,有几点要注意: 1.arg1/arg2/arg3 的部分应该在 routes.MapRoute 中设置默认值UrlParameter.Optional,才允许同时访问只传部分值比如 只传 arg1,或者 arg1/arg2 这样的路径 2.在设置默认值的情况下,如果出现 http:/…
Asp.net mvc 自定义全局的错误事件HandleErrorAttribute,结果无效, 原因: 1.没有在RegisterGlobalFilters 里面添加或者你要的位置添加. 2.你把这个放在另外的项目里面,没有引用System.Web.Mvc 和System.Web.Routing 这两个dll  (asp.mvc 主要实现有System.Web.Mvc.System.Web.Routing 这个两个实现,下面是查看的方法) 查看System.Web.Mvc.HandleErro…
[转]MVC自定义AuthorizeAttribute实现权限管理 原文载自:小飞的DD http://www.cnblogs.com/feiDD/articles/2844447.html 网站的权限管理是一个很重要的功能,MVC中怎么实现对于网站的权限管理呢. 在MVC中有一个名为AuthorizeAttribute的类,我们可以创建我们自己的特性 MemberValidationAttribute类,然后继承AuthorizeAttribute类来实现我们自己的网站权限的管理.然后通过将…
前几天Insus.NET有在数据库实现过对某一字段进行加密码与解密<使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和解密>http://www.cnblogs.com/insus/p/5983645.html那今次Insus.NET在ASP.NET MVC实现自定义验证Authorize Attribute. 实现之前,Insus.NET对usp_Users_VeryLoginVerify修改一下,改为更好理解与使用…
概述 1.在ASP.NET MVC项目开发的过程中,我们经常需要在cshtml的视图层输出一些公用信息 比如:页面Title.服务器日期时间.页面关键字.关键字描述.系统版本号.资源版本号等 2.普通的做法就是使用ViewBag.Title或ViewData["Title"] ,然后在视图层通过@ViewBag.Title进行输出 3.稍微高大尚一点的做法就是创建一个Model,视图层输出Model的属性,例如:@Model.Title 今天提供另外一个实践做法: ASP.NET MV…
asp.net mvc 自定义模型绑定 有潜在的Requset.Form 自定义了一个模型绑定器.前端会传过来一些敏感字符.调用bindContext. valueProvider.GetValue(key) 则会报错 说 有潜在的从客户端中检测到有潜在危险的 Request.QueryString 值 百度谷歌都没有找到相关答案 MVC自带的默认绑定器(DefaultModelBinder)在action方法打上[ValidateInput(false)]或则在跳过验证的字段上打上[Allow…
AuthorizeAttribute是asp.net MVC的几大过滤器之一,俗称认证和授权过滤器,也就是判断登录与否,授权与否.当为某一个Controller或Action附加该特性时,没有登录或授权的账户是不能访问这些Controller或Action的. 在进入一个附加了Authorize特性的Controller或Action之前,首先执行的是AuthorizeAttribute类的OnAuthorization(AuthorizationContext filterContext)方法…
前几天Insus.NET有在数据库实现过对某一字段进行加密码与解密<使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和解密>http://www.cnblogs.com/insus/p/5983645.html那今次Insus.NET在ASP.NET MVC实现自定义验证Authorize Attribute. 实现之前,Insus.NET对usp_Users_VeryLoginVerify修改一下,改为更好理解与使用…
一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕竟遇到多大的阻力就有多大的成长,感觉这半年自己也成长了不少,不是刚出校门桀骜不驯的牛犊,也不是在北京每个月拿4000多块,然后月光的毕业生.自始至终,我对于技术的追求也并没有松懈过,最近一段时间也根据自己小小的想法,与以前公司的一个框架原理,通过Asp.Net MVC为基础半实现(为什么是半实现?因…
在asp.net mvc的控制器中如果能够活用模型的自动绑定功能的话能够减少许多工作量.但是如果我们想要对前台传来的数据进行一些处理再绑定到模型上,该怎么做呢? 这里用一个绑定用户数据的小案例来讲解asp.net的自定义模型绑定. 新建用户模型: public class User { public string name { set; get; } public int age { set; get; } public DateTime day { set; get; } } 新建UserCu…
自定义Filter的基本思路是继承基类ActionFilterAttribute,并根据实际需要重写OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted这四个中的一个或多个方法. 注意类名一定要以Attribute结尾. 故名思义,Action执行前,执行后,结果返回前,结果返回后.所以它们的执行先后顺序就是OnActionExecuting,OnActionExecuted,Action,OnResultEx…
在ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute特性,那么默认的,当这个Action抛出了异常时MVC将会显示Error视图,该视图位于~/Views/Shared目录下. 设置HandleError属性 可以通过设置下面这些属性来更改HandleErrorAttribute特性的默认处理: ExceptionType.指定过滤器处理那种或哪些类型的异常…
上一篇文章主要以文字的形式介绍了IoC及其在ASP.NET MVC中的使用,本章将从以下几点介绍如何使用代码在ASP.NET MVC中实现依赖注入: ● AutoFac及安装 ● 容器的创建 ● 创建基于AutoFac的DependencyResolver ● 创建基于AutoFac的ControllerFactory AutoFac及安装 Autofac是一个基于.Net的IoC容器,它用来管理类与类之间的依赖.Autofac提供了多种方法来将一个类型注册到容器中,也提供了构造注入.属性注入和…
第一步:创建一个ASP.NET MVC API项目 第二步:在api项目里面创建一个类 public class Student { public int Id { get; set; } public string Name { get; set; } public string Pass { get; set; } } 第三步:webapi可以返回json和xml这两种数据 举一个简单的例子:api中返回一个list列表:可以返回 也可以返回这种格式: 前台接受完请求之后要进行反序列化: 现…
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    最近在做自学MVC,遇到的问题很多,索性一点点总结下. 写过webForm项目的童鞋都知道,在执行Page_Load()之前,会执行:OnInit(EventArgs e),那么在MVC中,在执行Action方法之前,会执行什么呢?在执行MVC Action之后,又会执行什么呢?下面给出答案: 1.OnActionExecuting  在执行操作方…
asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们的开发效率,减少开发bug的出现.    Razor 采用的是@ 尾巴符号,正是这个符号成就了Mvc开发效率的提升.下面了解一下和@相关的两个可以重用的helper.functions. 作为现代化的程序员,我们尽可能的遵守一个原则.不要重复你自己.所以能够重构的代码我们都会合并,但是这是对于后台代…
MVC内置的AuthorizeFilter先于Action/Result过滤器执行,为网站权限验证提供了很好的一套验证机制. 通过自定义的AuthorizeAttribute可以实现对用户权限的验证. 一.首先创建一个继承自AuthorizeAttribute(命名空间System.Web.Mvc) public class LoginValidateAttribute:AuthorizeAttribute { //重写OnAuthorization 实现验证机制 public override…
在上一节中提到可以使用AuthorizeAttribute进行权限管理: [Authorize] public ActionResult TestAuthorize() { return View(); } [Authorize(Users="test1,test2")] public ActionResult TestAuthorize() { return View(); } [Authorize(Roles="Admin")] public ActionRes…
大家都知道用系统默认的session 会存在这样的问题 如果用户过多的话 session 会自动消亡,而且不能支持分布式和集群. 这系列博客主要讲解  怎样 解决用户过多的session自动消亡,和分布式集群 使用例子 Session["test"] = "啄木鸟"; 完全不改变系统的使用风格,可以直接升级系统:     在这里我们主要用的 HttpRuntime.cache 和 memcache. 希望读者这跟着我的思路,一步一步来设计自定义Session 首先,…
异常处理跳转页面 第一步,在项目的Web.config文件中找到节点<system.web> 在此节点下添加配置(Error为定义的控制器也可以多添加些error标签用于区分不同的错误) <customErrors mode="On" defaultRedirect="~/Error/index"> <error statusCode=" redirect="~/Error/Error404" />…
上一篇文章对如何规范使用ASP.NET进行了介绍,本章内容将根据上一篇得出的结论来修改博客应用的代码. 代码分层 综合考虑将博客应用代码分为以下几个层次: ○ 模型:代表应用程序中的数据模型,与数据库表结构对应.同时也作为MVC与逻辑层之间的数据交换对象(后续会使用DTO代替). ○ 仓储:用于管理数据增.删.查.改. ○ 逻辑:用于处理业务逻辑,一般来说是根据应用层提供的数据来驱动业务执行,业务逻辑会使用仓储来对数据持久化. ○ 应用:也就是MVC应用,它为用户提供操作界面(UI),然后调用逻…
上一篇文章对如何规范使用ASP.NET进行了介绍,本章内容将根据上一篇得出的结论来修改博客应用的代码. 代码分层 综合考虑将博客应用代码分为以下几个层次: ○ 模型:代表应用程序中的数据模型,与数据库表结构对应.同时也作为MVC与逻辑层之间的数据交换对象(后续会使用DTO代替). ○ 仓储:用于管理数据增.删.查.改. ○ 逻辑:用于处理业务逻辑,一般来说是根据应用层提供的数据来驱动业务执行,业务逻辑会使用仓储来对数据持久化. ○ 应用:也就是MVC应用,它为用户提供操作界面(UI),然后调用逻…
前不久在做一个项目的时候,我用到了mvc的webapi返回了一个大数据,结果报了500错误,如下图所示: Server Error in ‘/’ Application. Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property. Des…
1.定义身份实体对象 /// <summary> /// 网站用户实体对象 /// </summary> public class DDTPrincipal : IPrincipal { public int? OrgCode { get; set; } public string RoleName { get; set; } public string OrgName { get; set; } private IIdentity _identity; public DDTPri…
SugarSite一个前端支持移动端的企业网站,目前只支持了简单功能,后续还会加上论坛等. 源码GIT地址: https://github.com/sunkaixuan/SugarSite 技术介绍 Layui 个人而言不喜欢引用一堆东西,越简洁越好,layui正好能够满足我的这种需求,它是一款轻量级UI,JS部分都是采用模块化设计(AMD) ,对移动端支持比较不错. 唯 一不足是目前支持的组件有些少,需要有一定前端扩展能力的人才可以顺心使用. 用法: 例如我想用form.js和uploda.j…
写在前面 最近在摸索mvc,在app中的webview中嵌入h5应用,经常需要用到对cookie的读取操作.所以想到通过自定义的filter截取cookie,然后通过在action上面打特性的方式针对需要认证的action进行授权. 一个例子 简单的userInfo类 public class UserInfo { public string Name { set; get; } public string Pwd { set; get; } } 自定义的filter public class…
自定义约束前 namespace MvcApplication2 { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); //默认 routes.MapRoute( name: "Default", url: "{controller}/…