Web应用程序系统的多用户权限控制设计及实现-项目架构【3】

2023-02-16,,,,

本章主要讲述Web权限管理系统的项目架构,及开发中需要的基本类和相关的CSS,JS文件。

1.1系统结构

本系统搭建开发工具为Visual Studio 2012,采用ASP.NET MVC 4.0技术开发。系统的框架图如下所示:

aaarticlea/png;base64,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" alt="" />

特别说明:系统需要用到的CSS文件在Content目录下,公有的JS文件在Scripts目录下。其下载链接为:http://files.cnblogs.com/files/wlandwl/CSS-JS.zip

系统页面前台展示主要运用EasyUI1.4.3的展示控件及其扩展控件,引用到Content目录。系统后台管理主要通过区域的方式开发,运用区域管理可以模块化的开发系统的功能,有助于中大型系统在后期的开发和维护。

1.2系统共有类

1.2.1数据表对应Model

aaarticlea/png;base64,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" alt="" />

AccountInfo.cs,主要管理账户的基本信息,及可以访问的目录信息,页面信息。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Models
{
/// <summary>
/// 用户信息
/// </summary>
public class AccountInfo
{
public string OperatorId { get; set; } //用户ID
public string OperatorName { get; set; } //用户名字
public string AliasName { get; set; } //别名
public string Sex { get; set; } //性别
public int IsOnStaff { get; set; }
public string OperatorGroupId { get; set; } //用户组ID
public string OperatorGroupName { get; set; } //用户组名称
public IList<Catalog> NavigationList { get; set; } //用户能够访问的一级导航列表
public IList<Catalog> RightList { get; set; } //用户权限列表
}
}

AccountInfo.cs

Catalog.cs,主要是用于目录结构信息管理。

 using System.Collections.Generic;

 namespace Models
{
/// <summary>
/// 栏目
/// </summary>
public class Catalog
{
public int CatalogId { get; set; }
public int ParentId { get; set; }
public string CatalogName { get; set; }
public string PictureUrl { get; set; }
public string Remark { get; set; }
public int ShowNo { get; set; }
public int IsAvailable { get; set; }
public IList<Catalog> Childern { get; set; }
public IList<Page> PageList { get; set; }
public Catalog()
{
Childern = new List<Catalog>();
PageList = new List<Page>();
}
}
}

Catalog.cs

OperatorGroup.cs,主要是用于分组信息的管理。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace Models
{
/// <summary>
/// 用户组
/// </summary>
public class OperatorGroup
{
public int GroupId { get; set; }
public string GroupName { get; set; }
public int OrderNum { get; set; } //排序值
public int ParentId { get; set; } //父节点
public int State { get; set; } //是否启用 }
}

OperatorGroup.cs

Page.cs,主要是用于页面信息的管理。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Models
{
/// <summary>
/// 页面
/// </summary>
public class Page
{
public int CategoryId { get; set; } //一级分类ID
public string CategoryName { get; set; } //一级分类名称
public decimal SubcategoryId { get; set; } //二级分类ID
public string SubcategoryName { get; set; } //二级分类名称
public decimal PageIndex { get; set; }
public string PageName { get; set; }
public string PageUrl { get; set; }
public string ProcedureName { get; set; } //对应的存储过程的名称
public string ReportRdlcName { get; set; } //报表名称(对应的rdlc的名称)
public string Title { get; set; } //报表标题
public string Subtitle { get; set; } //副标题
public string LeftHeader { get; set; } //左侧页眉显示信息
public string MiddelHeader { get; set; } //中间页眉显示信息
public string RightHeader { get; set; } //右侧页眉显示信息
public string LeftFooter { get; set; } //左侧页脚显示信息
public string MiddleFooter { get; set; } //中间页脚显示信息
public string RightFooter { get; set; } //右侧页脚显示信息
public int ShowNum { get; set; } //显示顺序,排序值
public int IsAvailable { get; set; } //是否可用
public string Operate { get; set; }
}
}

Page.cs

TreeModel.cs,主要是为了生成一课权限管理树,定义的节点类。

为了生成节点信息的安全和高效,引用了DotNetOpenAuth.Messaging动态链接库,需要下载才可以加入到项目中。

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using DotNetOpenAuth.Messaging; namespace Models
{
/// <summary>
/// 树模型
/// </summary>
public class TreeModel
{
public decimal id { get; set; }
public string text { get; set; }
public string state { get; set; }
public IList<TreeModel> children { get; set; }
public object attributes { get; set; }
/// <summary>
/// 从数据行生成树节点列表
/// </summary>
/// <param name="rows">行数组</param>
/// <param name="idName">id对应的数据库列</param>
/// <param name="textName">text对应的数据库列</param>
/// <param name="parentIdName">父节点ID对应的数据库列</param>
/// <param name="needRoot">是否需要显示根节点</param>
/// <param name="attributes">自定义属性</param>
/// <returns></returns>
public static IList<TreeModel> BuildTreeNodeList(DataRowCollection rows, string idName, string textName,
string parentIdName, bool needRoot, params string[] attributes)
{
IList<TreeModel> tree = new List<TreeModel>(); IList<TreeModel> resultList = new List<TreeModel>(); if (rows.Count > )
{
foreach (DataRow dr in rows)
{
var node = new TreeModel
{
id = DBNull.Value.Equals(dr[idName]) ? : Convert.ToDecimal(dr[idName]),
text = DBNull.Value.Equals(dr[textName]) ? "" : Convert.ToString(dr[textName]),
state = "open",
children = new List<TreeModel>()
}; int isavailable = DBNull.Value.Equals(dr["isavailable"]) ? : Convert.ToInt32(dr["isavailable"]);
int showno = DBNull.Value.Equals(dr["showno"]) ? : Convert.ToInt32(dr["showno"]);
string remark = DBNull.Value.Equals(dr["remark"]) ? "" : Convert.ToString(dr["remark"]);
string picUrl = DBNull.Value.Equals(dr["picurl"]) ? "" : Convert.ToString(dr["picurl"]); node.attributes = new CatalogAttributes
{
isavailable = isavailable,
remark = remark,
showno = showno,
picurl = picUrl
}; decimal parentId = DBNull.Value.Equals(dr[parentIdName]) ? : Convert.ToDecimal(dr[parentIdName]); bool hasFound = FoundTreeNode(resultList, node, parentId);
if (!hasFound)
{
resultList.Add(node);
} }
} if (needRoot)
{
var rootNode = new TreeModel
{
id = ,
text = "栏目树",
state = "open",
children = new List<TreeModel>()
};
rootNode.children.AddRange(resultList);
tree.Add(rootNode);
return tree;
} return resultList;
} public static IList<TreeModel> BuildTreeNodeListIncludeAll(DataRowCollection rows, string idName, string textName,
string parentIdName)
{ IList<TreeModel> resultList = new List<TreeModel>(); var root = new TreeModel
{
id = ,
text = "所有栏目",
state = "open",
children = new List<TreeModel>()
}; resultList.Add(root); if (rows.Count > )
{
foreach (DataRow dr in rows)
{
var node = new TreeModel
{
id = DBNull.Value.Equals(dr[idName]) ? : Convert.ToDecimal(dr[idName]),
text = DBNull.Value.Equals(dr[textName]) ? "" : Convert.ToString(dr[textName]),
state = "open",
children = new List<TreeModel>()
}; decimal parentId = DBNull.Value.Equals(dr[parentIdName]) ? : Convert.ToDecimal(dr[parentIdName]); bool hasFound = FoundTreeNode(resultList, node, parentId);
if (!hasFound)
{
resultList.Add(node);
}
}
} return resultList;
} /// <summary>
/// 在节点列表中查找父节点位置,并将新的节点插入
/// </summary>
/// <param name="nodeList">原始节点列表</param>
/// <param name="newNode">新节点</param>
/// <param name="parentId">父节点ID</param>
/// <returns></returns>
public static bool FoundTreeNode(IList<TreeModel> nodeList, TreeModel newNode, decimal parentId)
{
bool hasFound = false;
var parent = nodeList.FirstOrDefault(n => n.id == parentId);
if (parent != null)
{
parent.children.Add(newNode);
hasFound = true;
}
else
{
//在孩子节点中查找
foreach (TreeModel node in nodeList)
{
IList<TreeModel> children = node.children; //孩子节点
if (children != null && children.Count > )
{
hasFound = FoundTreeNode(children, newNode, parentId);
if (hasFound)
break;
}
}
}
return hasFound;
}
} public class CustomAttributes
{
public string url { get; set; }
public string pageName { get; set; }
} public class CatalogAttributes
{
public string remark { get; set; } //备注
public int showno { get; set; } //排序值
public int isavailable { get; set; } //状态
public string picurl { get; set; } //图标路径
} }

TreeModel.cs

1.2.1数据库处理类

数据库模板类主要是把常用sql语句的增,删,改,查及事务集中起来。便于开发中通过类的实例化调用。

该类位于目录OdbcDbAcess文件夹中。文件名称:SqlHelper.cs。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Configuration;
using System.Data.SqlClient; namespace OdbcDbAccess
{
public class SqlHelper
{
/// <summary>
/// ****************************
/// 功能:数据库连接处理类
/// 作者:王令
/// 时间:2015-7-10
/// 邮箱:1129137758@qq.com
/// **************************** private static SqlCommand CreateCommand(SqlConnection conn)
{
var comm = conn.CreateCommand();
comm.CommandTimeout = ;
return comm;
} /// <summary>
/// 执行单一数据返回查询
/// </summary>
/// <typeparam name="T">返回类型</typeparam>
/// <param name="connName">配置文件中连接字符串的名称</param>
/// <param name="sql">查询语句</param>
/// <returns></returns>
public static T ExecuteScalar<T>(string connName, string sql)
{
object result = null;
SqlConnection conn = new SqlConnection(connName);
{
var comm = CreateCommand(conn);
conn.Open();
comm.CommandText = sql;
result = comm.ExecuteScalar();
conn.Close();
}
if (result != null && result != DBNull.Value)
return (T)Convert.ChangeType(result, typeof(T));
return default(T);
} /// <summary>
/// 查询结果,返回多行数据【sql语句】
/// </summary>
/// <param name="sql">sql查询语句</param> public static DataSet ExecuteQuery(string connectionString, string sql)
{
SqlConnection con = new SqlConnection(connectionString);
string cmdText = sql;
SqlDataAdapter da = new SqlDataAdapter(cmdText, con); ///创建SqlDataAdapter
DataSet dss = new DataSet();
try
{
con.Open();
da.Fill(dss, "table1");
con.Close(); }
catch (Exception ex)
{ ///抛出异常
throw new Exception(ex.Message, ex);
}
finally
{ ///关闭连接
con.Close();
}
return dss;
} /// <summary>
/// 执行事务操作
/// </summary>
/// <param name="sql">sql查询语句</param>
public static int ExecuteTran(string connectionString, string sql)
{
try
{
using (var conn = new SqlConnection(connectionString))
{
var comm = conn.CreateCommand();
conn.Open();
var tran = conn.BeginTransaction();
comm.Transaction = tran;
try
{
comm.CommandText = sql;
comm.ExecuteNonQuery();
tran.Commit();
return ;
}
catch (Exception)
{
tran.Rollback();
conn.Close();
return ;
throw; }
}
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
} /// <summary>
/// 数据集删除,修改,添加【sql语句】
/// </summary>
/// <param name="sql">sql操作语句</param> public static int ExecuteNonQuery(string connectionString, string sql)
{ ///创建连接
SqlConnection con = new SqlConnection(connectionString);
///创建SQL语句
string cmdText = sql;
///创建SqlCommand
SqlCommand cmd = new SqlCommand(cmdText, con); int result = -;
try
{ ///打开连接
con.Open();
///操作数据
result = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{ ///抛出异常
throw new Exception(ex.Message, ex);
}
finally
{ ///关闭连接
con.Close();
} return result; } /// <summary>
/// 查询结果,返回多行数据【存储过程】
/// </summary>
/// <param name="storage">存储过程</param> public static DataSet ExecuteQueryWithParameter(string connectionString, string storage)
{
SqlConnection con = new SqlConnection(connectionString);
string cmdText = storage;
SqlDataAdapter da = new SqlDataAdapter(cmdText, con); ///创建SqlDataAdapter
///设置执行方式为存储过程
da.SelectCommand.CommandType = CommandType.StoredProcedure; DataSet dss = new DataSet();
try
{
con.Open();
da.Fill(dss, "table1");
con.Close(); }
catch (Exception ex)
{ ///抛出异常
throw new Exception(ex.Message, ex);
}
finally
{ ///关闭连接
con.Close();
}
return dss;
}
}
}

SqlHelper.cs

读取webconfig中的数据库连接字符串封装在ConnectionHelper.cs中。

 using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.Odbc;
using System.Linq;
using System.Text; namespace OdbcDbAccess
{
public class ConnectionHelper
{
public static string GeSqlDbConnectionStr()
{
return ConfigurationManager.ConnectionStrings["sqlSeverCenter"].ConnectionString;
} }
}

ConnectionHelper.cs

1.2.2数据集转换类

数据集转换类,主要是为了把得到的数据如DataSet封装成指定的格式数据,用于与前台网页数据作特定的交互。

该类位于OdbcDbAcess文件夹中。文件名称:DataTransfor.cs。

 using System;
using System.Collections.Generic;
using System.Data;
using System.Text; namespace OdbcDbAccess
{
/// <summary>
/// ****************************
/// 功能:数据转换类
/// 作者:王令
/// 时间:2015-7-10
/// 邮箱:1129137758@qq.com
/// ****************************
///
public class DataTransfor
{
/// <summary>
/// 数据转换
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="dataSet">数据集,其字段顺序必需与T的属性顺序一直</param>
/// <returns></returns>
public static IList<T> DataSetTransfor<T>(DataSet dataSet) where T : class,new()
{
IList<T> resultList = new List<T>(); //结果数据集合
//获取T的属性集合
Type tType = new T().GetType();
var propertyArray = tType.GetProperties(); if (dataSet != null && dataSet.Tables.Count > )
{
DataTable table = dataSet.Tables[];
foreach (DataRow dr in table.Rows)
{
T item = new T();
//为属性设值
for (int i = ; i < propertyArray.Length; i++)
{
if (!DBNull.Value.Equals(dr[i]))
{
var propertyInfo = propertyArray[i]; //获取属性
Type propertyType = propertyInfo.PropertyType;
object value = Convert.ChangeType(dr[i], propertyType); //将DataSet中的值转换为属性同类型的值
propertyInfo.SetValue(item, value, null); //为属性设置值
}
}
resultList.Add(item);
}
}
return resultList;
} /// <summary>
/// 数据转换--指定部分属性
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="dataSet">数据集,其字段顺序必需与T的属性propertyArray顺序一直</param>
/// <param name="propertyArray">指定类的属性数组</param>
/// <returns></returns>
public static IList<T> DataSetTransfor<T>(DataSet dataSet, string[] propertyArray) where T : class,new()
{
IList<T> resultList = new List<T>(); //结果数据集合 //获取T的数据类型
Type tType = new T().GetType(); if (dataSet != null && dataSet.Tables.Count > )
{
DataTable table = dataSet.Tables[];
foreach (DataRow dr in table.Rows)
{
var item = new T();
//为属性设值
for (int i = ; i < propertyArray.Length; i++)
{
var propertyInfo = tType.GetProperty(propertyArray[i]); //获取属性 if (!DBNull.Value.Equals(dr[i]))
{
string propertyTypeName = propertyInfo.PropertyType.FullName.Trim();
object value;
switch (propertyTypeName)
{
case "System.DateTime":
value = Convert.ToDateTime(dr[i]);
break;
case "System.Decimal":
value = Convert.ToDecimal(dr[i]);
break;
case "System.Double":
value = Convert.ToDouble(dr[i]);
break;
case "System.Int32":
value = Convert.ToInt32(dr[i]);
break;
default:
value = Convert.ToString(dr[i]);
break;
}
propertyInfo.SetValue(item, value, null); //为属性设置值
} }
resultList.Add(item);
}
}
return resultList;
} /// <summary>
/// 数据转换--指定部分属性
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="dataSet">数据集,其字段顺序必需与T的属性propertyArray顺序一直</param>
/// <param name="columnIndexArray">DataSet中的字段对应的下表数组,其长度和PropertyArray相同</param>
/// <param name="propertyArray">指定类的属性数组</param>
/// <returns></returns>
public static IList<T> DataSetTransfor<T>(DataSet dataSet, int[] columnIndexArray, string[] propertyArray) where T : class,new()
{
IList<T> resultList = new List<T>(); //结果数据集合 //获取T的数据类型
Type tType = new T().GetType(); if (dataSet != null && dataSet.Tables.Count > )
{
if (columnIndexArray != null && propertyArray != null && columnIndexArray.Length == propertyArray.Length)
{
DataTable table = dataSet.Tables[];
foreach (DataRow dr in table.Rows)
{
var item = new T();
for (int i = ; i < columnIndexArray.Length; i++)
{
int index = columnIndexArray[i];
if (!DBNull.Value.Equals(dr[index]))
{
//为属性设值
var propertyInfo = tType.GetProperty(propertyArray[i]); //获取属性
object value = Convert.ChangeType(dr[index], propertyInfo.PropertyType); //将DataSet中的值转换为属性同类型的值
propertyInfo.SetValue(item, value, null); //为属性设置值
}
}
resultList.Add(item);
}
}
}
return resultList;
} /// <summary>
/// 将List中的数据,封装为Combobox的Html
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="dataList">数据列表</param>
/// <param name="valueProperty">value绑定的属性名称,多个用“,”分隔</param>
/// <param name="textProperty">text绑定的属性名称</param>
/// <param name="containAll">是否包含"全部"选项</param>
/// <returns></returns>
public static string ListToComboboxHtml<T>(IList<T> dataList, string valueProperty, string textProperty, bool containAll) where T : class, new()
{
var htmlStr = new StringBuilder(); if (dataList != null && dataList.Count > )
{
if (containAll && dataList.Count > )
{
htmlStr.Append("<option value=\"-1\">全部</option>");
} string[] valuePropertyArray = valueProperty.Split(','); //获取T的数据类型
Type tType = new T().GetType();
foreach (T item in dataList)
{
var textPropertyInfo = tType.GetProperty(textProperty); //获取Text属性 htmlStr.Append("<option value=\"");
for (int i = ; i < valuePropertyArray.Length; i++)
{
string s = valuePropertyArray[i];
var valuePropertyInfo = tType.GetProperty(s); //获取Value属性
htmlStr.Append(valuePropertyInfo.GetValue(item, null));
if (i != valuePropertyArray.Length - )
{
htmlStr.Append("_");
}
} htmlStr.Append("\">");
htmlStr.Append(textPropertyInfo.GetValue(item, null));
htmlStr.Append("</option>");
}
}
return htmlStr.ToString();
}
/// <summary>
/// 将List中的数据,封装为datagrid body的Html
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="dataList">数据列表</param>
/// <param name="propertyArray">属性数组,其顺序和前台显示顺序一致</param>
/// <returns></returns>
public static string ListToTableHtml<T>(IList<T> dataList, string[] propertyArray)
where T : class, new()
{
var htmlStr = new StringBuilder(); if (dataList != null && dataList.Count > )
{
//获取T的数据类型
Type tType = new T().GetType();
foreach (T item in dataList)
{
htmlStr.Append("<tr>");
for (int i = ; i < propertyArray.Length; i++)
{
htmlStr.Append("<td>");
htmlStr.Append(tType.GetProperty(propertyArray[i]).GetValue(item, null));
htmlStr.Append("</td>");
}
htmlStr.Append("</tr>");
}
}
return htmlStr.ToString();
}
/// <summary>
/// 数据转换-2015-4-17添加
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="dataSet">数据集,所有数据转换为string</param>
public static IList<T> DataSetTransforString<T>(DataSet dataSet) where T : class,new()
{
IList<T> resultList = new List<T>(); //结果数据集合 //获取T的属性集合
Type tType = new T().GetType();
var propertyArray = tType.GetProperties(); if (dataSet != null && dataSet.Tables.Count > )
{
DataTable table = dataSet.Tables[];
var temp = dataSet.Tables[].Columns.Count;
foreach (DataRow dr in table.Rows)
{
T item = new T();
//为属性设值
for (int i = ; i < temp; i++)
{
var propertyInfo = propertyArray[i]; //获取属性
Type propertyType = propertyInfo.PropertyType;
object value = DBNull.Value.Equals(dr[i]) ? "" : dr[i].ToString(); //将DataSet中的值转换为属性同类型的值
propertyInfo.SetValue(item, value, null); //为属性设置值
}
resultList.Add(item);
}
}
return resultList;
} }
}

DataTransfor.cs

1.2.3会话管理类

会话管理类是权限管理系统的核心类,它主要是根据登录者的id和密码获取相应信息,同时把登录者可以点击的目录,访问的网页存在session中。供系统自动配置出用户的可访问信息。

该类位于BaseBag文件夹中。文件名称:SessionManage.cs。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Models;
using OdbcDbAccess;
using System.Data;
using LogInfo; namespace Session
{
/// <summary>
/// ****************************
/// 功能:会话管理类
/// 作者:王令
/// 时间:2015-7-18
/// 邮箱:1129137758@qq.com
/// **************************** public class SessionManage
{ /// <summary>
/// Web虚拟目录路径
/// </summary>
public static string AppPath
{
get
{
return HttpContext.Current.Request.ApplicationPath;
}
} /// <summary>
/// 当前访问的Web域名
/// </summary>
public static string WebRoot
{
get
{
string url = HttpContext.Current.Request.Url.AbsoluteUri;
url = url.Remove(, );
url = "http://" + url.Substring(, url.IndexOf('/')) + AppPath;
return url.ToLower();
}
} /// <summary>
/// 用户认证信息KEY
/// </summary>
private const string UserInfoKey = "USER_INFO_KEY"; /// <summary>
/// 当前登陆用户信息
/// </summary>
public static AccountInfo CurrentUser
{
get
{
if (HttpContext.Current.Session[UserInfoKey] == null)
return null; return (AccountInfo)HttpContext.Current.Session[UserInfoKey];
}
set { HttpContext.Current.Session[UserInfoKey] = value; }
} /// <summary>
/// 用户权限验证
/// </summary>
/// <returns></returns>
public static bool CheckRight()
{
try
{
if (CurrentUser == null)
{
//当前用户信息是否为空,为空,验证失败
return false;
}
else
{
string fUrl = HttpContext.Current.Request.Url.AbsoluteUri.Trim(); //用户当前请求的地址
if (fUrl.EndsWith("/"))
{
fUrl = fUrl.Substring(, fUrl.Length - );
}
else
{
if (fUrl.Contains("?"))
{
fUrl = fUrl.Substring(, fUrl.LastIndexOf("?", System.StringComparison.Ordinal));
}
}
fUrl = fUrl.Substring(, fUrl.LastIndexOf("/", System.StringComparison.Ordinal) + );//只取到控制器名称,具体的ActionName不在考虑,因为不同的Action都会形成不同的URL
fUrl = fUrl.Trim('/');
string[] url = fUrl.Split('/');
string righturl = "";
for (int i = ; i < url.Length; i++)
{
righturl += url[i] + "/";
}
string strSql = "select PageUrl from pageinfo,rightlist where pageinfo.PageUrl like '" + righturl + "%' and pageinfo.pageid=rightlist.pageid and operatorgroupid='" + CurrentUser.OperatorGroupId + "' "; DataSet dataSet = SqlHelper.ExecuteQuery(ConnectionHelper.GeSqlDbConnectionStr(), strSql);
if (dataSet != null && dataSet.Tables.Count > && dataSet.Tables[].Rows.Count > )
{
return true;
}
else
{
return false;
}
}
}
catch (Exception ex)
{
Log.SaveErrorLog(ex.ToString(), "用户权限判断出错!");
return false;
}
} } }

SessionManage.cs

1.2.4页面权限检测控制器

页面权限检测控制器主要是每访问一个页面信息时,校验该用户是否具有访问该页面的权限。定义为BaseControl.cs控制器,其他的控制器均继承该控制器。

 using System;
using Session;
using OdbcDbAccess;
using System.Data;
using Models;
using System.Web;
using System.Web.Mvc;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Web.Caching; namespace Controllers
{
/// <summary>
/// ****************************
/// 功能:页面权限检测
/// 作者:王令
/// 时间:2015-7-15
/// 邮箱:1129137758@qq.com
/// **************************** public class BaseController : Controller
{
/// <summary>
/// sql sever连接字符串
/// </summary>
protected static string SqlSeverConnectionName = ConfigurationManager.ConnectionStrings["sqlSeverCenter"].ConnectionString; /// <summary>
/// 控制器初始化,判断用户权限以及登陆是否过期
/// </summary>
/// <param name="requestContext"></param>
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
if (!SessionManage.CheckRight())
{
Response.Write("<script> window.parent.location.href = '/Login/Login';</script>");
}
} }
}

BaseController.cs

1.3系统模板页

由于登录到首页后,其他页面均是在生成的iframe标签中展示,这些页面都需要引用一些相同的CSS文件,JS文件,为了网页的统一管理,开发了一个共享页面,作为其他页面的模板页。

模板页位于Views/Shared目录中,文件名称为:_BaseLayout.cshtml。引用它的页面通过 @RenderBody()的方式即可把html代码渲染在网页中。

 <!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<link type="text/css" rel="stylesheet" href="~/Content/easyui143/themes/gray/easyui.css" />
<link type="text/css" rel="stylesheet" href="~/Content/easyui143/themes/icon.css" />
<link type="text/css" rel="stylesheet" href="~/Content/easyui143/themes/color.css" />
<style type="text/css">
.panel-title {
text-align: center;
} .datagrid-header-inner {
width: 100%;
} .datagrid-htable, .datagrid-btable, .datagrid-ftable {
width: 100%;
}
</style> <style type="text/css">
.panel-title {
text-align: center;
} .panel-title {
line-height: 22px;
letter-spacing: 1px;
} .datagrid-header-inner {
width: 100%;
} .datagrid-htable, .datagrid-btable, .datagrid-ftable {
width: 100%;
} span.datagrid-row-expander.datagrid-row-expand {
display: block !important;
} span.datagrid-row-expander.datagrid-row-collapse {
display: block !important;
} div[id^='ddv-'] table {
font-size: smaller;
border-right: 1px groove rgba(248, 243, 243, 0.27);
border-bottom: 1px groove rgba(248, 243, 243, 0.27);
width: 1000px;
margin-bottom: 20px;
} div[id^='ddv-'] table td, div[id^='ddv-'] table th {
line-height: 20px;
border-left: 1px groove rgba(248, 243, 243, 0.27);
border-top: 1px groove rgba(248, 243, 243, 0.27);
border-bottom: none;
border-right: none; padding-left: 10px;
color: #808080;
font-weight: 100;
} div[id^='ddv-'] .easyui-tabs .tabtitle {
color: lightblue;
}
</style>
@RenderSection("style", required: false)
<title>@ViewBag.Title</title>
</head> <body>
<div style="margin: 10px 0 10px 10px; font-weight: bold; font-size: 14px; font-family: 宋体,Arial,Helvetica,sans-serif" id="titleDiv">
<input type="hidden" value="true" id="firstLoadFlag" />
</div> @RenderBody() <script src="@Url.Content("~/Scripts/jquery-1.7.1.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Content/easyui143/jquery.easyui.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Content/easyui143/locale/easyui-lang-zh_CN.js")"></script>
<script src="@Url.Content("~/Scripts/CustomJs/common.js")"></script>
<script src="@Url.Content("~/Content/easyui143/datagrid-detailview.js")" type="text/javascript"></script>
@RenderSection("scripts", required: false) </body> </html>

_BaseLayout.cshtml

总结:本章主要介绍了项目的基本架构,常用的基本信息类。通过前前三章的介绍,已经完成了项目开发的前期准备工作,第四章开始,就以模块化的方式讲述每个模块的开发流程。

Web应用程序系统的多用户权限控制设计及实现-项目架构【3】的相关教程结束。

《Web应用程序系统的多用户权限控制设计及实现-项目架构【3】.doc》

下载本文的Word格式文档,以方便收藏与打印。