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操作,只要存儲/獲取的鍵值保存一致即可。

 

用戶組件,也可以通過這樣類似的方式定義一個基類,以后所有自定義用戶組件,就很方便獲得用戶的身份信息了,如下代碼所示。

 

 在窗體界面上,可以放置很多模塊,模塊通過窗體獲得用戶身份信息、角色信息等進行初始化的判斷

最終在主體界面中整合的是一個個模塊,每個模塊里面又有不同的窗體界面可供使用,但是都能通過緩存獲得用戶身份信息,數據處理起來就非常方便了。

對於業務報銷信息,我們可以根據用戶身份信息,迅速獲得對應的記錄列表,以及在修改的時候,記錄用戶的身份信息。

如新增一條主表記錄的時候,那么可以彈出一個新的界面進行數據的維護處理,界面如下所示。

或者類似下面的界面處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM