成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Winform開發框架之系統登錄實現

開發 后端
自動登錄(其實是接受通過命令行參數進行登錄)也是很常見的,有時候,讓客戶端記住用戶的賬號密碼,我們在后臺通過調動命令行方式進行登錄,讓系統程序接收到相關的參數值即可進行登錄了。

在業務系統的操作過程中,有時候,用戶需要切換用戶進行重新登錄,這種情況有時候是因為一個人管理多個用戶賬號,希望通過不同的賬號登錄進行管理不同的資料,另一種情況是酒店的換班操作,另一個人接替前面的人進行系統維護管理。這種重新登錄其實也是一種友好的操作之一,試想一下,換個賬號登錄,就需要推出系統,重新尋找運行程序才可以,而且如果系統啟動較慢一點的,還需要等待,所以實現重新登錄,有時候也是必要的。因此實現這個功能,也是體現我們開發的系統注重細節的表現。

另外,自動登錄(其實是接受通過命令行參數進行登錄)也是很常見的,有時候,讓客戶端記住用戶的賬號密碼,我們在后臺通過調動命令行方式進行登錄,讓系統程序接收到相關的參數值即可進行登錄了。

1、系統重新登錄實現

大致的思路,就是登錄系統后,在系統菜單中有一項重新登錄的功能入口,單擊可以要求客戶重新輸入密碼進行登錄,如下所示。

代碼實現就是通過把初始化的時候,用戶相關的操作放到一個函數里面,保證重新執行這個函數操作就能重新刷新登錄用戶信息即可。如下所示。

在InitUserRelated函數里面,我們把用戶相關的初始化操作放在里面,其中包括顯示登錄用戶信息、用戶可操作按鈕或者菜單、首頁信息等相關項目,代碼如下所示。

  1. /// <summary>  
  2. /// 初始化用戶相關的系統信息  
  3. /// </summary>  
  4. private void InitUserRelated()  
  5. {  
  6.     ChildWinManagement.LoadMdiForm(thistypeof(FirstPage));//歡迎頁面  
  7.  
  8.     #region 初始化系統名稱  
  9.     try 
  10.     {  
  11.         string Manufacturer = config.AppConfigGet("Manufacturer");  
  12.         string ApplicationName = config.AppConfigGet("ApplicationName");  
  13.         string AppWholeName = string.Format("{0}-{1}    ", Manufacturer, ApplicationName);  
  14.         Portal.gc.gAppUnit = Manufacturer;  
  15.         Portal.gc.gAppMsgboxTitle = AppWholeName;  
  16.         Portal.gc.gAppWholeName = AppWholeName;  
  17.  
  18.         this.Text = AppWholeName + "      ";  
  19.         this.notifyIcon1.BalloonTipText = AppWholeName;  
  20.         this.notifyIcon1.BalloonTipTitle = AppWholeName;  
  21.         this.notifyIcon1.Text = AppWholeName;  
  22.  
  23.         string userName = Portal.gc.LoginInfo.RealName;  
  24.         if (string.IsNullOrEmpty(userName))  
  25.         {  
  26.             userName = Portal.gc.LoginInfo.Name;  
  27.         }  
  28.         UserStatus = string.Format("當前用戶:{0}({1})", userName, Portal.gc.RoleInfo.RoleName);  
  29.         CommandStatus = string.Format("歡迎使用 {0}", Portal.gc.gAppWholeName);  
  30.     }  
  31.     catch { }  
  32.  
  33.     #endregion  
  34.  
  35.     InitAuthorizedUI();//根據權限屏蔽  
  36.  
  37.     InitSkinGallery();  
  38.     UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue");  

其中InitAuthorizedUI就是判斷用戶有哪些權限的函數,根據權限系統獲取到的功能點,在這里對界面元素進行重新刷新,有權限的就顯示,沒有的就隱藏即可,如下所示。

  1. /// <summary>  
  2. /// 根據權限屏蔽功能  
  3. /// </summary>  
  4. private void InitAuthorizedUI()  
  5. {  
  6.     this.tool_Report.Enabled = Portal.gc.HasFunction("Report");  
  7.     this.tool_Dict.Enabled = Portal.gc.HasFunction("Dictionary");  
  8.     this.tool_ItemDetail.Enabled = Portal.gc.HasFunction("ItemDetail");  
  9.     this.tool_Purchase.Enabled = Portal.gc.HasFunction("Purchase");  
  10.     this.tool_StockSearch.Enabled = Portal.gc.HasFunction("StockSearch");  
  11.     this.tool_TakeOut.Enabled = Portal.gc.HasFunction("TakeOut");  
  12.     this.tool_WareHouse.Enabled = Portal.gc.HasFunction("WareHouse");  
  13.     //this.menu_run_systemLog.Enabled = Portal.gc.HasFunction("LoginLog");  
  14.     this.tool_Settings.Enabled = Portal.gc.HasFunction("Parameters");  
  15.     this.tool_MonthlyStatistic.Enabled = Portal.gc.HasFunction("MonthlyStatistic");  
  16.     this.tool_AnnualStatistic.Enabled = Portal.gc.HasFunction("AnnualStatistic");  
  17.     this.tool_ClearAll.Enabled = Portal.gc.HasFunction("ClearAllData");  
  18.     this.tool_ImportItemDetail.Enabled = Portal.gc.HasFunction("ImportItemDetail");  

這樣封裝好后,我們需要重新登錄就方便了,我們在重新登錄的菜單操作里面,實現代碼如下所示。

  1. private void btnRelogin_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)  
  2. {  
  3.     if (MessageDxUtil.ShowYesNoAndWarning("您確定需要重新登錄嗎?") != DialogResult.Yes)  
  4.         return;  
  5.  
  6.  
  7.     Portal.gc.MainDialog.Hide();  
  8.  
  9.     Login dlg = new Login();  
  10.     dlg.StartPosition = FormStartPosition.CenterScreen;  
  11.     if (DialogResult.OK == dlg.ShowDialog())  
  12.     {  
  13.         if (dlg.bLogin)  
  14.         {  
  15.             CloseAllDocuments();  
  16.             InitUserRelated();  
  17.         }  
  18.  
  19.     }  
  20.     dlg.Dispose();  
  21.     Portal.gc.MainDialog.Show();  

實現上面的操作過程,基本上就完成了重新登錄的操作了。

2、系統自動登錄實現

系統自動登錄有時候很必要,在用戶自己絕對信任的電腦上,自動登錄對用戶來說,很方便友好的,君不見,QQ如此、旺旺如此等等。其實實現思路就是通過給exe執行文件傳遞登錄參數即可,必要時登錄的參數值還可以進行加密,給第三方進行運行調用,以前就做過一個在Web上自動啟動桌面程序Visio應用軟件的操作,其實原理就是一樣,通過傳遞參數給執行文件實現的。

  1. [STAThread]  
  2. static void Main(string[] args)  
  3. {  
  4.     Application.EnableVisualStyles();  
  5.     Application.SetCompatibleTextRenderingDefault(false);  
  6.  
  7.     if (args.Length > 0)  
  8.     {  
  9.         LoginByArgs(args);  
  10.     }  
  11.     else 
  12.     {  
  13.         LoginNormal(args);  
  14.     }  
  1. /// <summary>  
  2.         /// 使用參數化登錄  
  3.         /// </summary>  
  4.         /// <param name="args"></param>  
  5.         private static void LoginByArgs(string[] args)  
  6.         {  
  7.             CommandArgs commandArgs = CommandLine.Parse(args);  
  8.             if (commandArgs.ArgPairs.Count > 0)  
  9.             {  
  10.                 #region 獲取用戶參數  
  11.                 string userName = string.Empty;  
  12.                 string identity = string.Empty;  
  13.                 foreach (KeyValuePair<stringstring> pair in commandArgs.ArgPairs)  
  14.                 {  
  15.                     if ("U".Equals(pair.Key, StringComparison.OrdinalIgnoreCase))  
  16.                     {  
  17.                         userName = pair.Value;  
  18.                     }  
  19.                     if ("P".Equals(pair.Key, StringComparison.OrdinalIgnoreCase))  
  20.                     {  
  21.                         identity = pair.Value;  
  22.                     }  
  23.                 }   
  24.                 #endregion  
  25.  
  26.                 if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(identity))  
  27.                 {  
  28.                     bool bLogin = Portal.gc.LoginByIdentity(userName.Trim(), identity);  
  29.                     if (bLogin)  
  30.                     {  
  31.                         ShowMainDialog();  
  32.                     }  
  33.                     else 
  34.                     {  
  35.                         LoginNormal(args);  
  36.                     }  
  37.                 }  
  38.             }  
  39.         } 

有時候,即使覺得用戶不需要通過命令行登錄,那么我們自己為了避免開發過程中,啟動程序時候,總是需要輸入用戶賬號密碼的問題,也可以使用模擬自動登錄的方式解決。

我們只需要在項目的屬性里面輸入內置的用戶名密碼,這樣我們測試起來就不用登錄那么麻煩了。

以上就是Winform開發框架中對于系統重新登錄以及系統自動登錄(命令行登錄)的思想思路及方式,歡迎大家提供更好的思路及技巧,或者進行探討,謝謝支持。

原文鏈接:http://www.cnblogs.com/wuhuacong/archive/2012/08/21/2648339.html

責任編輯:張偉 來源: 伍華聰的博客
相關推薦

2012-12-11 10:15:02

Winform開發框架

2013-04-23 09:31:12

Winform開發框架

2011-11-23 09:47:36

Winform

2012-11-20 10:04:46

Winform開發

2011-11-14 10:41:15

Winform數據管理模塊Items

2012-07-30 09:32:00

Web

2016-03-23 11:05:58

Socket開發框架分析

2024-03-05 10:39:42

2009-08-20 10:24:52

C#開發WinForm

2009-08-20 09:30:03

C#開發WinForm

2009-10-13 11:32:19

Winform假框架

2009-07-07 15:53:02

JDK日志

2012-10-12 10:30:37

PHPOauth

2010-09-25 13:09:39

UISymbian

2019-10-18 16:05:32

框架開發Java

2011-04-22 10:45:14

SimpleFrame

2014-07-10 10:02:01

iOSHome Kit框架

2012-09-10 10:00:02

2020-10-23 09:47:19

HarmonyOSJS開發框架

2009-11-05 09:01:41

WinForm
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品乱码一区二区三四区视频 | 午夜男人免费视频 | 欧美激情精品久久久久久免费 | 99久久婷婷国产综合精品电影 | 精品三级在线观看 | 福利视频一区二区 | 成人精品国产一区二区4080 | 九九热国产精品视频 | 九九色综合 | 夜夜爽99久久国产综合精品女不卡 | 欧美激情亚洲激情 | 欧美一级在线观看 | 欧美爱爱视频网站 | 我想看一级黄色毛片 | 久久精品在线播放 | 欧美日韩视频在线第一区 | 麻豆视频在线免费观看 | a欧美 | 一区二区小视频 | 国产二区精品视频 | 国产一级在线观看 | 逼逼视频| 99re视频在线 | 亚洲成人一区二区三区 | 国产91在线 | 中日 | 一级高清 | 国产黄色大片在线免费观看 | 欧美成人一级视频 | 免费国产一区二区 | 人人看人人草 | 日日夜夜精品视频 | 国产成人免费 | 综合久久一区 | 国产高清视频一区二区 | 欧美三级在线 | 男人的天堂中文字幕 | 日本不卡视频在线播放 | 国产成人精品一区二区三区在线 | 国产一区不卡 | a在线v| 91玖玖|