首页 > 代码库 > 权限设计Extjs

权限设计Extjs

1.extjs4 作为前段框架,封装grid window form treegrid等。
2.EF codefirst作为orm底层。
3.使用ioc 依赖注入作为程序注入。
4.使用aop作为权限、日志、异常的拦截。避免程序中大量使用日志权限异常代码。
5.面向接口的服务,使用泛型模板作为数据操作。
6.使用log4net作为日志底层。
7.良好的权限控制,可判断前台操作跟后台权限操作。
8.使用NPOI作为excel操作框架。
9.权限基于反射,根据特性判断哪些可以控制权限。
10.linq扩展,可查询多where or等,更新删除操作可以where().Update()
11.不仅是权限系统,也是一套平台
QQ:2294508843

 

权限类根据特性控制是否需用控制权限,特性通过反射来获取

技术分享

技术分享

 

public static Dictionary<string, IList<AOPAttribute>> GetAOPAttribute(IInvocation invocation)
{
// System.Reflection.MemberInfo info = invocation.TargetType;
Dictionary<string, IList<AOPAttribute>> dict = new Dictionary<string, IList<AOPAttribute>>();

Type type = invocation.TargetType;
AOPAttribute[] classAttribute = type.GetCustomAttributes(typeof(AOPAttribute), true) as AOPAttribute[];
dict.Add("class", classAttribute.ToList<AOPAttribute>());

var methodName = invocation.Method.Name;//.GetCustomAttributes(typeof(AOPAttribute), true) as AOPAttribute[];

IList<AOPAttribute> methodAttributeList = new List<AOPAttribute>();

MethodInfo[] methods = type.GetMethods();
foreach (MethodInfo item in methods)
{
if (item.Name == methodName)
{
AOPAttribute[] methodAttributes = item.GetCustomAttributes(typeof(AOPAttribute), true) as AOPAttribute[];
if (methodAttributes.Length != 0)
{ //&&! dict["method"].Contains(methodAttributes)
if (!dict.ContainsKey("method"))
{

dict.Add("method", methodAttributes.ToList<AOPAttribute>());
}
else
{

dict["method"]= methodAttributes.ToList<AOPAttribute>();
}

}
else
{
dict.Add("method", null);
}
}
}

return dict;
}

权限设计Extjs