您好,欢迎 来到润思科技-信息IT服务 长沙软件定 做外包公司!
0731-82519789

润思专业售 前支持

一"点"我帮您!

0731-82519789

24小时:13549648356

技术文档

您现在的位 置:主页 > 新闻中心 > 技术文档 >

ASP.NET MVC :MVC页面验证与 授权

作者:长沙软件公 司

在ASP.NET MVC中,如何来 实现表单的验证与授权访问呢?至少在CTP3中,还没有 一个官方的解决方案。ASP.NET WebForm的表单验证 和授权机制是否适合在ASP.NET MVC中使用呢? 带着这些问题来进入我们今天的主题。
 在ASP.NET WebForm的架构下, 我们可以通过一定的配置即可实现用户身份验证和授权。特别是在ASP.NET 2.0的Membership功能的支撑 下,可以做到更加简洁可复用的用户验证系统。通过web.config可以做到对 页面或目录对不同用户身份可见性的定制,但是它是基于物理文件和目录。而在ASP.NET MVC架构下,用 户访问的每一个页面在磁盘中并没有一个固定的物理文件,它是通过Controller控制数据与 视图的组合来生成HTML代码,进而 向客户端输出。那么我们该如何来复用已有的表单验证授权机制呢?

在MVC中,请求的 功能入口是Controller相应的Action函数,我们 可以在函数执行前去控制请求权限。在ASP.NET MVC Preview 2后,提供了 一个机制让我们可以对Action的AOP拦截,这个 接口定义如下:           public interface IActionFilter

以下为引用 的内容:
         {
             void OnActionExecuted(ActionExecutedContext filterContext);
             void OnActionExecuting(ActionExecutingContext filterContext);
             void OnResultExecuted(ResultExecutedContext filterContext);
             void OnResultExecuting(ResultExecutingContext filterContext);
         }

我们有两种 方式来实现拦截,一种我们可以通过定义Attribute来实现拦截 的功能,在System.Web.Mvc程序集中有 一个ActionFilterAttribute抽象类,通 过重写这个抽象类的这些虚方法,我们就可以实现对特定的执行过程进行拦截。

另一种方法 ,我们注意到Controller这个类也实 现了IActionFilter这个接口, 并且也提供了这四个函数的虚拟方法定义。框架内部,在调用Action方法的时候 同时来调用这些拦截方法。具体的可以参考:ControllerActionInvoker 这个类的实 现,所有的Action的调用都在 这个类当中被实现。所以我们只要重写Controller里这四个虚 方法,也可完成本Controller面的所有Action的拦截。

在这里,我 也找到了国外友人已经实现好的基于角色的MVC权限控制的 方案。

友情链接:    顶峰彩票-首页   pk拾手机计划网页版_pk拾全天计划两期_pk拾彩票网开奖直播   野狼彩票  737彩票---首页欢迎你   新疆11选5走势图