在B/S开发中,涉及到获取系统基础资料的问题,因为是在不同平台下的开发,采用了WCF方式获取。
下面是一个调用通用权限管理系统(吉日嘎拉)基础信息资料的一个demo供参考
注意:userInfo是登录通用权限管理系统后的用户信息表,登录后需要设置对应的安全认证信息
页面
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 |
/// <summary>/// 基本信息表表名/// </summary>protected
string itemName = string.Empty;/// <summary>/// 输出的json内容/// </summary>protected
string jsonStr = string.Empty;protected
void Page_Load(object
sender, EventArgs e){ Response.ContentType = "application/json"; itemName = string.IsNullOrWhiteSpace(RequestString("itemName")) || string.Equals(RequestString("itemName"), "null", StringComparison.OrdinalIgnoreCase) ? string.Empty : RequestString("itemName").Trim(); if
(!string.IsNullOrWhiteSpace(itemName) && !string.IsNullOrWhiteSpace(itemName)) { using
(DataTable dt = ItemsManager.GetItemsDB(userInfo, "ItemsClass")) { //过滤 显示或不显示 DeletionStateCode为0的字段显示,Enabled为1的字段 BaseBusinessLogic.SetFilter(dt, BaseItemDetailsEntity.FieldDeletionStateCode, "0"); BaseBusinessLogic.SetFilter(dt, BaseItemDetailsEntity.FieldEnabled, "1"); DataTable dtNew = new
DataTable(); dtNew.Columns.Add("key", typeof(string)); dtNew.Columns.Add("value", typeof(string)); for
(int
i = 0; i < dt.Rows.Count; i++) { DataRow row = dtNew.NewRow(); row["key"] = dt.Rows[i]["ITEMNAME"]; row["value"] = dt.Rows[i]["ITEMVALUE"]; dtNew.Rows.Add(row); } jsonStr = DataTableHelper.DataTable2Json(dtNew); } } else { jsonStr = "{\"list\":[{\"key\":\"出错了\",\"value\":\"取数据出错\",\"myFlag\":\"没有传入参数值\"}]}"; } Response.Write(jsonStr); Response.End();} |
业务层
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 |
using
System.Collections.Generic;using
System.Data;using
System.Web;namespace
TransferFees.BLL{ using
System; using
System.Web.Caching; using
DotNet.Business; using
DotNet.Utilities; using
TransferFees.DAL; using
TransferFees.Foundation; /// <summary> /// 获取基础信息表资料业务类 /// 以安全的WCF方式访问 /// 1,增加缓存功能 /// /// <author> /// <name>songbiao</name> /// <date>2014.03.18</date> /// </author> /// </summary> /// </summary> /// </summary> public
class ItemsManager { /// <summary> /// 获得基础信息表资料 /// 通过安全的WCF服务方式调用 /// 传入的用户实体含有配置的加密信息 /// </summary> /// <param name="userInfo">用户实体</param> /// <param name="itemName">要查询的基础信息表的表名</param> /// <returns></returns> public
static DataTable GetItemsDB(BaseUserInfo userInfo, string
itemName, bool
refreshFlag = false) { string
key = "GetItemsDB"; if
(refreshFlag) { HttpContext.Current.Cache.Remove(key); } if
(HttpContext.Current.Cache[key] == null) { lock
(userInfo) { if
(HttpContext.Current.Cache[key] == null) { DataTable dtRes = ItemsServices.GetItemsDB(userInfo, itemName); CacheItemRemovedCallback onRemoveCallback = new
CacheItemRemovedCallback(CacheHelper.CacheItemRemovedCallback); HttpContext.Current.Cache.Add(key, dtRes, null, DateTime.Now.AddMinutes(30.0), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, onRemoveCallback); } } } return
HttpContext.Current.Cache[key] as
DataTable; } /// <summary> /// 获得基础信息表资料 /// 用户实体含有配置的加密信息 /// </summary> /// <param name="userInfo">用户实体</param> /// <param name="itemName">要查询的基础信息表的表名</param> /// <returns></returns> public
static List<BaseItemDetailsEntity> GetItemsList(BaseUserInfo userInfo, string
itemName, bool
refreshFlag = false) { string
key = "GetItemsList"; if
(refreshFlag) { HttpContext.Current.Cache.Remove(key); } if
(HttpContext.Current.Cache[key] == null) { lock
(userInfo) { if
(HttpContext.Current.Cache[key] == null) { List<BaseItemDetailsEntity> listRes = ItemsServices.GetItemsList(userInfo, itemName); CacheItemRemovedCallback onRemoveCallback = new
CacheItemRemovedCallback(CacheHelper.CacheItemRemovedCallback); HttpContext.Current.Cache.Add(key, listRes, null, DateTime.Now.AddMinutes(30.0), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, onRemoveCallback); } } } return
HttpContext.Current.Cache[key] as
List<BaseItemDetailsEntity>; } }} |
数据访问层
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 |
using
System.Collections.Generic;using
System.Data;using
DotNet.Business;using
DotNet.Utilities;namespace
TransferFees.DAL{ /// <summary> /// 获取基础信息表资料服务类 /// 以安全的WCF方式访问 /// /// <author> /// <name>songbiao</name> /// <date>2014.03.18</date> /// </author> /// </summary> /// </summary> /// </summary> public
class ItemsServices { /// <summary> /// 获得基础信息表资料 /// 通过安全的WCF服务方式调用 /// 用户实体含有配置的加密信息 /// </summary> /// <param name="userInfo">用户实体</param> /// <param name="itemName">要查询的基础信息表的表名</param> /// <returns></returns> public
static DataTable GetItemsDB(BaseUserInfo userInfo,string
itemName) { DotNetService dotNetService = new
DotNetService("DotNet.WCFClient"); return
dotNetService.BaseItemDetailsService.GetDataTable(userInfo, itemName); } /// <summary> /// 获得基础信息表资料 /// 用户实体含有配置的加密信息 /// </summary> /// <param name="userInfo">用户实体</param> /// <param name="itemName">要查询的基础信息表的表名</param> /// <returns></returns> public
static List<BaseItemDetailsEntity> GetItemsList(BaseUserInfo userInfo, string
itemName) { DotNetService dotNetService = new
DotNetService("DotNet.WCFClient"); return
dotNetService.BaseItemDetailsService.GetList(userInfo, "ItemsClass"); } }} |
这段时间一直在基于吉日嘎拉的通用权限管理系统上做开发,真心感觉他真的是很强大,
他真的不仅仅是一套权限管理系统,底层涉及到的安全问题考虑的也非常全面。
用上这套权限管理系统,我们只需关心业务就行了,时间对开发人员、对公司来说都非常重要,有一个好的选择我们一定要用上。
今后有机会会分享更多的应用,欢迎使用过这套系统的朋友一起交流。
以WCF安全认证方式调用通用权限管理系统获取基础信息资料,布布扣,bubuko.com
原文:http://www.cnblogs.com/hnsongbiao/p/3608131.html