亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MVC4.0的用戶登錄模塊設(shè)計(jì)與實(shí)現(xiàn)

        2017-05-09 16:06:06丁允超范小花
        關(guān)鍵詞:過濾器重慶控制器

        丁允超 范小花

        (1. 重慶工程學(xué)院軟件與計(jì)算機(jī)學(xué)院, 重慶 400056; 2. 重慶科技學(xué)院安全工程學(xué)院, 重慶 401331)

        ?

        基于MVC4.0的用戶登錄模塊設(shè)計(jì)與實(shí)現(xiàn)

        丁允超1范小花2

        (1. 重慶工程學(xué)院軟件與計(jì)算機(jī)學(xué)院, 重慶 400056; 2. 重慶科技學(xué)院安全工程學(xué)院, 重慶 401331)

        為了保障信息系統(tǒng)的數(shù)據(jù)安全,系統(tǒng)必須具備用戶登錄時(shí)的身份驗(yàn)證功能。針對(duì)某信息系統(tǒng),介紹系統(tǒng)用戶登錄模塊的設(shè)計(jì),給出用戶登錄驗(yàn)證的參考代碼。

        用戶登錄;過濾器;HQL;權(quán)限

        重慶某汽車零部件有限公司大部分的業(yè)務(wù)管理工作需通過人工完成。為了節(jié)約企業(yè)運(yùn)營成本、提升工作效率,公司提出了開發(fā)信息化管理系統(tǒng)的需求。該系統(tǒng)可實(shí)現(xiàn)用戶登錄、合同申請(qǐng)、審核管理以及財(cái)務(wù)方面借款、還款、掛賬等功能。系統(tǒng)中用戶登錄模塊采用了MVC4.0技術(shù),用戶過濾采用了MVC過濾器與控制器相結(jié)合的方式來實(shí)現(xiàn)。在此,闡述用戶登錄模塊的具體實(shí)現(xiàn)方法。

        1 登錄模塊設(shè)計(jì)

        登錄模塊是系統(tǒng)的入口。為了驗(yàn)證用戶的合法身份,系統(tǒng)要求用戶輸入用戶名和密碼來進(jìn)行有效性驗(yàn)證。如果未通過驗(yàn)證,系統(tǒng)會(huì)提示或指導(dǎo)用戶正確輸入;如果通過驗(yàn)證,則允許用戶進(jìn)入系統(tǒng)權(quán)限的驗(yàn)證,根據(jù)當(dāng)前登錄用戶的角色及權(quán)限顯示相應(yīng)的權(quán)限菜單[1]。圖1所示為用戶登錄流程圖。

        2 登錄模塊實(shí)現(xiàn)

        2.1 過濾器實(shí)現(xiàn)未登錄攔截

        MVC中的過濾器分4種,分別為IActionFilter(動(dòng)作過濾器)、 IAuthorizationFilter(授權(quán)過濾器)、IExceptionFilter(異常過濾器)、IResultFilter(結(jié)果過濾器)[2]。在此,應(yīng)用MVC的動(dòng)作過濾器實(shí)現(xiàn)用戶登錄模塊中的過濾功能。

        為了實(shí)現(xiàn)未登錄用戶過濾及成功登錄權(quán)限判定,需要重寫控制器的OnActionExecuting方法。

        圖1 用戶登錄流程圖

        自定義一個(gè)控制器,命名為UcController,具體代碼如下。

        public class UcController : Controller

        {

        ∥重寫OnActionExecuting方法,這個(gè)方法在Action執(zhí)行時(shí)執(zhí)行

        protected override void OnActionExecuting(ActionExecutingContext filterContext)

        {

        base.OnActionExecuting(filterContext);

        return;

        ∥獲取控制器名稱

        string controllerName = filterContext.Controller.ToString();

        ∥獲取Action的名稱

        string actionName = filterContext.ActionDescriptor.ActionName;

        ∥如果是用戶請(qǐng)求登錄頁面則不驗(yàn)證權(quán)限

        if (controllerName.Equals("UserController") && (actionName == "Login"))

        {

        ∥執(zhí)行mvc默認(rèn)的行為

        base.OnActionExecuting(filterContext);

        }

        else

        {

        ∥如果登錄信息丟失

        if (AppHelper.LoginedUser == null)

        {

        Redirect(filterContext);∥跳轉(zhuǎn)到登錄頁面

        Response.End();∥結(jié)束響應(yīng)

        }

        else

        {

        ∥判斷登錄用戶是否有權(quán)限訪問當(dāng)前頁面,如果沒有訪問權(quán)限

        if (!IsAuthenticated(controllerName, actionName))

        {

        }

        else

        {

        base.OnActionExecuting(filterContext);

        }

        }

        }

        }

        }

        實(shí)現(xiàn)了此項(xiàng)功能后,項(xiàng)目中所有的控制器均繼承自UcController控制器。只需要在UcController中對(duì)用戶進(jìn)行驗(yàn)證即可,所有請(qǐng)求均會(huì)先執(zhí)行UcController控制,代碼得以復(fù)用。這樣,減少了重復(fù)驗(yàn)證的工作量,使程序更加簡(jiǎn)化[3]。

        2.2 使用HQL語言實(shí)現(xiàn)用戶和密碼的驗(yàn)證

        HQL(hibernate query language)提供了更加豐富靈活、更為強(qiáng)大的查詢能力。 HQL更接近SQL語句查詢語法,因?yàn)镃astle繼承自Hibernate,對(duì)Hibernate進(jìn)一步封裝,所以在Castle框架下可以使用HQL語言進(jìn)行查詢。

        Using NHibernate;

        public Users Login(string account, string password)

        {

        StringBuilder sql = new StringBuilder("from Users where Account=? and Password=?");

        ∥獲取管理T的session對(duì)象

        ISession session = ActiveRecordBase.holder.CreateSession(typeof(Users));

        IQuery query = session.CreateQuery(sql.ToString());

        query.SetString(0, account);

        query.SetString(1, password);

        IList arr = query.List();

        if(arr==null||arr.Count==0)

        {

        return null;

        }else

        {

        return arr[0];

        }

        }

        2.3 根據(jù)用戶角色獲取權(quán)限

        驗(yàn)證用戶的賬號(hào)和密碼后,還需驗(yàn)證當(dāng)前登錄用戶的權(quán)限。若用戶和角色的關(guān)系為多對(duì)多映射,則一個(gè)用戶可以擁有多個(gè)角色,用戶的角色權(quán)限就有可能重復(fù)[4]。為了保證界面顯示不出問題,需要去掉用戶的重復(fù)權(quán)限。通過下面的代碼可獲取當(dāng)前用戶所有權(quán)限菜單。

        public static IList Privileges

        {

        get

        {

        ∥獲取系統(tǒng)中所有的功能模塊

        privileges = Container.Instance.Resolve().GetAll();

        ∥return privileges;

        if (privileges == null)

        {

        return privileges;

        }

        ∥聲明一個(gè)集合變量

        IList privilegeList = null;

        ∥如果有用戶登錄并且有對(duì)應(yīng)的角色

        if (LoginedUser != null && LoginedUser.Roles != null)

        {

        foreach (Role role in LoginedUser.Roles)∥遍歷當(dāng)前用戶的角色

        {

        if (role != null)

        {

        ∥獲取當(dāng)前用戶可以操作的功能

        foreach (SystemFunction function in role.SystemFunctions)

        {

        if (privilegeList == null)

        {

        ∥實(shí)例化權(quán)限集合

        privilegeList = new List();

        }

        ∥如果當(dāng)前功能在權(quán)限集合中不存在

        if (privilegeList.Where(o => o.ID == function.ID).Count() < 1)

        {

        privilegeList.Add(function);∥添加到集合中

        }

        }

        }

        }

        }

        return privilegeList;

        }

        }

        3 結(jié) 語

        針對(duì)某公司的信息管理系統(tǒng),設(shè)計(jì)登錄模塊的用戶權(quán)限驗(yàn)證功能。用MVC的過濾器技術(shù),結(jié)合Castle的HQL技術(shù)實(shí)現(xiàn)用戶的過濾和驗(yàn)證。所有代碼均在Win7、Visual Studio2013、MySql 5.0環(huán)境中調(diào)試通過。本次設(shè)計(jì)基本上實(shí)現(xiàn)了登錄權(quán)限管理功能,可以應(yīng)用于系統(tǒng)中,部分細(xì)節(jié)問題仍需在實(shí)踐中進(jìn)一步完善。

        [1] 郭昊.基于ASP.NET MVC3和jQuery的網(wǎng)站應(yīng)用開發(fā)[D].武漢:華中師范大學(xué),2013:14.

        [2] 陳剛.一種截取過濾器實(shí)現(xiàn)方案的應(yīng)用研究[J].微型機(jī)與應(yīng)用,2012(19):6-7.

        [3] 吳兆立.基于ASP技術(shù)的學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008(9):165-169.

        [4] 劉亞鵬,張征,俞婷.基于MVC多層架構(gòu)的Web應(yīng)用框架設(shè)計(jì)[J].微計(jì)算機(jī)信息,2011(7):170.

        [5] 丁允超,范小花.SQL注入攻擊原理及其防范措施[J].重慶科技學(xué)院學(xué)報(bào)(自然科學(xué)版),2012,14(5):136-139.

        Design and Implementation of User Login Module Based on MVC4.0

        DINGYunchao1FANXiaohua2

        (1.Chongqing Institute of Engineering, Chongqing 400056, China; 2.School of Safety Engineering, Chongqing University of Science and Technology, Chongqing 401331, China)

        In order to ensure the data security of the system, a system must verify the identity of the user. This article focuses on the research of the user login module, and proposes the user login validation of the reference code based on an actual information system.

        login; filter; HQL; privilege

        2016-11-23

        國家自然科學(xué)基金項(xiàng)目“多因素耦合作用下尾礦庫(壩)潰決礦漿運(yùn)動(dòng)機(jī)制及其預(yù)測(cè)模型研究”( 51404049) ; 重慶市基礎(chǔ)與前沿研究計(jì)劃項(xiàng)目“硫鐵礦采冶廢渣場(chǎng)中重金屬環(huán)境污染過程及污染釋放機(jī)理研究”(CSTC2016JCYJA0319) ; 重慶市教委科學(xué)技術(shù)研究項(xiàng)目“排土場(chǎng)泥石流災(zāi)害預(yù)警與評(píng)估模型研究”( KJ1501328)

        丁允超(1980 — ),男,碩士,講師,研究方向?yàn)檐浖夹g(shù)、數(shù)據(jù)庫技術(shù)、信息安全。

        TP319

        A

        1673-1980(2017)02-0106-03

        猜你喜歡
        過濾器重慶控制器
        重慶客APP
        重慶人為什么愛吃花
        “逗樂坊”:徜徉相聲里的重慶味
        支持過濾器的REST模型研究與實(shí)現(xiàn)
        聲音過濾器
        趣味(語文)(2018年2期)2018-05-26 09:17:55
        在這里看重慶
        今日重慶(2017年5期)2017-07-05 12:52:25
        模糊PID控制器設(shè)計(jì)及MATLAB仿真
        MOXA RTU控制器ioPAC 5542系列
        基于LOGO!的空氣過濾器自潔控制系統(tǒng)
        倍福 CX8091嵌入式控制器
        一本一本久久aa综合精品| 亚洲国产成人久久精品美女av| 美腿丝袜日韩在线观看| 99久久亚洲精品日本无码| 国产人妻无码一区二区三区免费| 国产一区二区丰满熟女人妻| 国产日本精品一区二区| 狠狠色欧美亚洲狠狠色www| 九九99久久精品国产| 欧美精品一区二区精品久久| 女同重口味一区二区在线| 精品精品国产高清a毛片| 伊人久久五月丁香综合中文亚洲| 亚洲AV无码精品色午夜超碰| 国产午夜视频高清在线观看| 国色天香社区视频在线| 亚洲av成人无码久久精品| 亚洲国产福利成人一区二区| 99久久婷婷亚洲综合国产| 久久亚洲av午夜福利精品一区| 中文字幕无线码中文字幕| 亚洲一区二区三区免费av在线| 自由成熟女性性毛茸茸应用特色| 无码国产福利av私拍| 人妻少妇不满足中文字幕| 久久精品国产亚洲av网在| 欧洲成人一区二区三区| 久久久久久久性潮| 国产成人自拍视频在线免费| 精品一区二区三区蜜桃麻豆| 男人靠女人免费视频网站| 中文字幕av一区二区三区| 在线久草视频免费播放| 成人网站在线进入爽爽爽| 黄 色 人 成 网 站 免 费| 精品日本一区二区视频| 国产精华液一区二区三区| 97久久香蕉国产线看观看| 欧美深夜福利视频| 精精国产xxxx视频在线播放器| 久久精品国产在热亚洲不卡|