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

点击获取DevExpress Winform控件最新版

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

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

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

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

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

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

这里的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操作,只要存储/获取的键值保存一致即可。

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

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

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

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

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

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

DevExpress WinForm界面控件| 下载试用

DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

本文转载自:博客园 - 伍华聪


DevExpress技术交流群4:715863792      欢迎一起进群讨论

更多DevExpress线上公开课、中文教程资讯请上中文网获取

WinForm框架开发教程 - 窗体基类的用户身份信息的缓存和提取相关推荐

  1. 《C# WinForM 实践开发教程》案例×××(2)

    <C# WinForM 实践开发教程>案例×××(2): 由于上传限制,必须分卷压缩,请依次下载后解压缩.共有20个文件,合计71.3M. 请耐心下载哦^o^ 转载于:https://bl ...

  2. 尚硅谷SpringCloud(H版alibaba)框架开发教程(大牛讲授spring cloud) 最详细的。

    尚硅谷SpringCloud(H版&alibaba)框架开发教程(大牛讲授spring cloud) 一. 从2.2.x和H版开始说起 二.关于Cloud各种组件的停更/升级/替换 三.微服务 ...

  3. 基于C# winform框架开发的校园社团管理系统

    基于C# winform框架开发的校园社团管理系统 一.项目介绍 环环公益系统(HuanHuan System)是本人在校期间给自己所在社团开发的一款社团管理系统,拥有社团活动创建.活动报名.活动考勤 ...

  4. 王者级微信小程序开发实战教学 从零到高手搭建微信小程序框架开发教程

    王者级微信小程序开发实战教学 从零到高手搭建微信小程序框架开发教程 小程序进阶 王者级微信小程序开发实战教学课程,讲师手把手对同学们进行微信小程序开发的进阶实战,从零开始搭建,从本地到云端开始系统化的 ...

  5. DuiVision开发教程(12)-任务类和任务队列

    基于MFC的界面程序中,如果存在多线程,一般情况下只有主线程(界面线程)可以调用Windows窗口相关的函数,否则如果在其他线程中调用了界面函数,很可能会造成异常.为此DuiVision界面库提供了一 ...

  6. 微信开发调试小工具进化→微信用户发送信息模拟器发布!——这标题起真是好数码暴龙的说...

    直接说正题吧.最近在做微信第三方服务器.在模拟用户发过来的请求方面,网上流传着一个"微信开发调试小工具",谁做都不知道了.反正我觉得那个东西看起来挺不爽的,因为其信息发送类型不是很 ...

  7. 微信公众号开发之微信网页授权获取用户个人信息

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一丶概述 微信网页授权 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑 ...

  8. SpringCloud( H版 alibaba )框架开发教程(中级)

    中级 编码五部曲: 建module 改pom 写yml 主启动 业务类 所有源码地址:https://gitee.com/xyy-kk_admin/spring-cloud 入门篇链接:https:/ ...

  9. 尚硅谷2020最新版周阳SpringCloud(H版alibaba)框架开发教程 学习笔记

    前言:今天看到周阳老师出了新课,十分欣喜,很喜欢周阳老师的讲课风格,内容也充实,我也算是周阳老师忠实粉丝啦. 新出的springcloud第二版很符合我现阶段的学习需求.但美中不足的是,目前只有视频资 ...

最新文章

  1. 学好单片机能找什么工作?单片机好学吗?
  2. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb0 in position 0: invalid start byte
  3. bootstrap-fileupload-上传文件控件
  4. 今年美国广告程序化购买支出将超252亿美元
  5. 【赫夫曼树详解】赫夫曼树简介及java代码实现-数据结构07
  6. 【CyberSecurityLearning 70】DC系列之DC-1渗透测试(Drupal)
  7. 2017网易云创大会教育论坛,等你!
  8. 有趣的网页注释代码,保护我方源码
  9. 空调c语言入门自学视频教程,本人大一,自学c语言,想问一下用哪个编程环境比较好啊?...
  10. FreeRTOS如何结束和重新启动调度程序
  11. SpellGCN: Incorporating Phonological and Visual Similarities intoLanguage Models
  12. ant 日期组件中文_Vue3开源组件库,今天“它们”来了
  13. 490 - Rotating Sentences
  14. python爬网页html乱码问题
  15. Duck Duck Go Architecture
  16. 3D游戏建模:女性角色制作
  17. 在iOS设备上安装Windows、Linux等操作系统!
  18. Jquery写的幸运大转盘抽奖实例,用asp.net处理的服务器逻辑,附源码下载
  19. 零基础转行大数据可行吗?大数据开发需要什么基础呢?
  20. android 旋转屏幕 view的调整,Android ViewModel在屏幕旋转时重新创建

热门文章

  1. 原创1:dell sc1425老服务器安装vmware虚拟机esxi 5.0-系统配置
  2. 小米与欧瑞博达成合作,开启AIoT智慧生
  3. 【SQL注入-15】自动化注入案例—以sqli-labs-less9为例(利用sqlmap工具)
  4. 提取Wallpaper Engine.pkg文件中的壁纸
  5. Activiti7子流程之Call activity
  6. 对象存储服务(Object Storage Service,简称 OSS)
  7. APS推进实施的条件与基础
  8. Abaqus应力张量方向输出
  9. 温湿度探头CAEL-S16用于水果烘干房的温湿度值探测
  10. 在Windows上安装Gradle