Web应用程序系统的多用户权限控制设计及实现-登录模块【4】

通过前三个模块的介绍,把web权限系统开发所需要的基本类,Css文件,EasyUI框架等准备好后,就可以着手开始系统的编码了。

登陆模块是权限处理系统的关键,根据输入用户的的信息,可自动从数据库中加载该用户可以访问的页面,匹配出可以操作的模块。

由于登录模块是系统的基本模块,因此没有单独放在一个域里面。登录的控制器在项目默认的Controllers文件夹下。登录对应的视图在项目默认的Views文件夹下。

1.1视图

登录视图中比较重要的是通过.NET MVC的Ajax异步方式提交用户名和密码到后台服务。

提交格式如下:@using (Ajax.BeginForm("Login", "Login", 
                            new AjaxOptions
                            {
                                OnBegin = "loginBefore",
                                OnSuccess = "showMessage"
                            }))

在提交数据前做必要的数据格式校验,提交成功后,通过Login.js文件中的函数跳转到首页。登录模块的详细视图内容如下:

 Login.cshtml

 1.2 JS文件

登录模块所用的JS文件在项目的根目录Scripts目录下。它主要是提交登录信息,根据服务器返回的结果判断登录信息是否有效。详细的JS代码如下:

 Login.js

 

 1.3 控制器

登录控制器是整个权限处理的核心模块,它根据用户的信息自动加载出用户可以访问的目录信息,可以访问的网页信息通过Session的方式,把信息通过SessionManage基本类进行会话管理。部分代码如下:

               SessionManage.CurrentUser = null;先清空会话信息 

                #region 封装用户信息

               var currentUser = new AccountInfo();
                currentUser.OperatorId = Convert.ToString(dr["accountid"]);
                currentUser.OperatorName = DBNull.Value.Equals(dr["accountname"]) ? "" : Convert.ToString(dr["accountname"]);
                currentUser.AliasName = DBNull.Value.Equals(dr["aliasname"]) ? "" : Convert.ToString(dr["aliasname"]);
                currentUser.Sex = DBNull.Value.Equals(dr["sex"]) ? "" : (Convert.ToInt32(dr["sex"]) == 0 ? "男" : "女");
                currentUser.OperatorGroupId = DBNull.Value.Equals(dr["groupid"]) ? "" : Convert.ToString(dr["groupid"]);
                currentUser.OperatorGroupName = (string.IsNullOrEmpty(groupName) ? "" : groupName.Substring(0, groupName.Length - 1));

                SessionManage.CurrentUser = currentUser;    //保存基本信息
                #endregion

             //目录列表(存储登录人员可以访问的一级目录和访问的网页)
                IList<Catalog> navigationList = new List<Catalog>();
                IList<Catalog> rightList = new List<Catalog>();

控制器的完整代码如下:

 LoginController.cs

 

1.4界面运行截图

1.5验证码生成控制器

验证码的处理方式也是一个控制器,它对应一个视图页面。视图页面中不需要编写代码,只是需要视图这个文件。供登录模块调用。对于视图的生成,只需要右键ValidateCode,点击添加视图就可以了。

 public ActionResult ValidateCode()
        {
            CreateCheckCodeImage(GenerateCheckCode());
            return View();
        }

验证码生成的控制器代码如下:

 ValidateCodeController.cs

 

posted @ 2017-08-02 19:52  张松任  阅读(351)  评论(0编辑  收藏  举报
友情链接:上海回力 | 中老年高档女装