首页 > 其他 > 详细

以WCF安全认证方式调用通用权限管理系统获取基础信息资料

时间:2014-03-18 18:08:36      阅读:499      评论:0      收藏:0      [点我收藏+]

在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

以WCF安全认证方式调用通用权限管理系统获取基础信息资料

原文:http://www.cnblogs.com/hnsongbiao/p/3608131.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!