日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

把权限控制做成用户控件--简易型

發布時間:2025/6/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 把权限控制做成用户控件--简易型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家都知道,程序員是很辛苦的,做為程序開發人員,肯定要想辦法減輕工作量,以獲得足夠多的業余時間做自己喜歡做的事。做好接口,以方便后續把部分用戶需求轉架到HELPDESK組去,這樣,不但省去了實現的時間,連談需求的時間也省了。其實這篇的功能并不能節省多少時間。反而上一篇的條碼設計節省了相當大的時間。廢話少說,這里的權限控制,主要是控件頁面的簡單的增刪改而已,并沒有對特別字段做控制的。雖然比較簡單,但也基本能滿足大部分的需求了。這其中只涉及兩個表,表也相當的簡單,分別如下:

USERIGHT: 用戶權限表,結構如下,主要是用戶/群組對應某個模組的權限。

USERUSER: 用戶與組的關聯表。結構如下。

好了,下面是核心的代碼。

public void Run(){string format = "SELECT MAX(CANREAD) CANREAD,MAX(CANINS) CANINS,MAX(CANDEL) CANDEL,MAX(CANUPD) CANUPD ";format = format + "FROM USERIGHT where (SUSER='{0}' OR SUSER IN (SELECT ISA FROM USERUSER WHERE SUSER='{0}')) AND MODNAME='{1}'";SqlConnection connection = new SqlConnection(this.ConnectString);try{connection.Open();SqlCommand command = new SqlCommand();command.CommandText = string.Format(format, this.User, this.Module);command.Connection = connection;SqlDataReader reader = command.ExecuteReader();if (reader.Read()){if (reader["CANREAD"] != null){if (reader["CANREAD"].ToString().Trim() != ""){this.ViewState["CANREAD"] = reader["CANREAD"].ToString();}else{this.ViewState["CANREAD"] = "0";}}else{this.ViewState["CANREAD"] = "0";}if (reader["CANINS"] != null){if (reader["CANINS"].ToString().Trim() != ""){this.ViewState["CANINSERT"] = reader["CANINS"].ToString();}else{this.ViewState["CANINSERT"] = "0";}}else{this.ViewState["CANINSERT"] = "0";}if (reader["CANDEL"] != null){if (reader["CANDEL"].ToString().Trim() != ""){this.ViewState["CANDELETE"] = reader["CANDEL"].ToString();}else{this.ViewState["CANDELETE"] = "0";}}else{this.ViewState["CANDELETE"] = "0";}if (reader["CANUPD"] != null){if (reader["CANUPD"].ToString().Trim() != ""){this.ViewState["CANUPDATE"] = reader["CANUPD"].ToString();}else{this.ViewState["CANUPDATE"] = "0";}}else{this.ViewState["CANUPDATE"] = "0";}}else{this.ViewState["ERRMSG"] = "No record found!";}if ((this.ViewState["CANREAD"].ToString() == "0") && (this.ErrMsgPage.Trim() != "")){}}catch (Exception exception){this.ViewState["ERRMSG"] = exception.Message;}finally{connection.Close();}}

也是相當的簡單,之所以用max,是取權限大者。 然后添加幾個屬性就可以封裝成dll。在畫面引用一下。就可以簡單易用了。

畫面加載的時候判斷一下,如果沒權限則跳轉

其實最上面兩個屬性也可以做成默認的,這樣每個畫面又可以少兩句了。如果畫面涉及到增刪改,也可以加入判斷。即使是grid方面的。參考如下代碼。

if (e.Item.FindControl("btnDelete") != null){Button button = (Button)e.Item.FindControl("btnDelete");if (this.Useright1.CanDelete == 0){button.Attributes.Add("onclick", "alert('" + base.GetErrMsgXml(0x3eb) + "');return false; ");}else{button.Attributes.Add("onclick", "return confirm('" + base.GetErrMsgXml(0x3e8) + "');");}}

前臺設置如下,也是相當簡單。

?

這里沒有技術難點。涉及的知識也相當簡單。對一些初學者應該有用,如果大牛們有復雜控制的,相當全面的,望不吝賜教。

?

轉載于:https://www.cnblogs.com/Geton/p/4157133.html

總結

以上是生活随笔為你收集整理的把权限控制做成用户控件--简易型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。