6

Winform框架中窗体基类的用户身份信息的缓存和提取

 3 years ago
source link: https://www.cnblogs.com/wuhuacong/p/15061113.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Winform框架中窗体基类的用户身份信息的缓存和提取

在Winform开发中,有时候为了方便,需要把窗体的一些常规性的数据和操作函数进行封装,通过自定义基类窗体的方式,可以实现这些封装管理,让我们的框架统一化、简单化的处理一些常规性的操作,如这里介绍的用户身份信息的缓存和提取。通过基类的封装,可以大大减少常规性的代码,这个也是基类封装的目的所在。

1、用户登录获得身份信息并缓存

用户登录界面,通过获得用户的账号密码进行登录验证,如下界面所示。

 登录过程如下所示,成功后获得用户的身份信息并缓存起来待用,毕竟系统界面,大多数都需要获得用户的信息的。

获得用户的身份信息后,调用SetLoginInfo设置缓存数据,以备后用。

通过上面的处理,用户身份信息,权限信息,角色信息,都可以一次性获得,供各个界面上使用了。

2、基类窗体的用户身份提取

这里的LoginUserInfo是窗体基类的一个属性,这个属性通过两种方式获得,一个是通过用户在调用窗体显示前进行指定,一种是通过基类自动把缓存里面的用户对象赋值。

如下面的代码就是界面基类BaseForm的部分代码。

namespace WHC.Framework.BaseUI
{
    /// <summary>
    /// 常规界面基类
    /// </summary>
    public partial class BaseForm : DevExpress.XtraEditors.XtraForm, IFunction
    {
        public event EventHandler OnDataSaved;//子窗体数据保存的触发

        public BaseForm()
        {
            InitializeComponent();

            //为了保证一些界面控件的权限控制和身份确认,以及简化操作,在界面初始化的时候,从缓存里面内容(如果存在的话)
            //继承的子模块,也可以通过InitFunction()进行指定用户相关信息
            this.LoginUserInfo = Cache.Instance["LoginUserInfo"] as LoginUserInfo;
            this.FunctionDict = Cache.Instance["FunctionDict"] as Dictionary<string, string>;
        }

这样界面基类实例化的时候,就会自动获取用户信息了,这个操作类似于Web领域里面的Session操作,只要存储/获取的键值保存一致即可。

用户组件,也可以通过这样类似的方式定义一个基类,以后所有自定义用户组件,就很方便获得用户的身份信息了,如下代码所示。

 在窗体界面上,可以放置很多模块,模块通过窗体获得用户身份信息、角色信息等进行初始化的判断

最终在主体界面中整合的是一个个模块,每个模块里面又有不同的窗体界面可供使用,但是都能通过缓存获得用户身份信息,数据处理起来就非常方便了。

对于业务报销信息,我们可以根据用户身份信息,迅速获得对应的记录列表,以及在修改的时候,记录用户的身份信息。

如新增一条主表记录的时候,那么可以弹出一个新的界面进行数据的维护处理,界面如下所示。

或者类似下面的界面处理。

主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
  转载请注明出处:
撰写人:伍华聪  http://www.iqidi.com 

posted on 2021-07-26 14:01  伍华聪  阅读(612)  评论(2)  编辑  收藏  举报


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK