亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

通用權限管理系統菜單展示的一個技巧

2019-11-17 03:08:31
字體:
來源:轉載
供稿:網友

通用權限管理系統菜單展示的一個技巧

從這篇文章,希望您能夠了解吉日嘎拉通用權限管理系統菜單項配置、緩存及在前臺的展示技巧。

項目中使用了吉日嘎拉的通用權限管理系統,幾十個子系統均由該權限管理系統管理。

在系統中配置好相關菜單及非菜單項,配置截圖:

菜單權限設置截圖

通過下拉菜單進入其中的一個子系統

子系統中的菜單項(菜單項表示該項會在前端需要展示出來,用于用戶點擊的項目),其中的公開表示所有人均可看到該菜單項目。

子系統中的非菜單項(非菜單項表示該項目不需要在前端展示出來,比如有些在頁面中的彈出窗口、按鈕等項目)

通過單點登錄到子系統以后,通過一個服務獲取登錄用戶擁有的全部菜單,在權限基類頁實現,所有需要進行權限判斷的頁面均集成此基類頁。

代碼實現如下圖:AuthBasePage.cs基類頁,可參考編寫基類頁

    public class AuthBasePage : BasePage    {        /// <summary>        /// 所有的權限菜單:包含菜單項、非菜單項(如程序中的彈出頁、按鈕等)        /// </summary>        PRotected string menuHtml = string.Empty;        /// <summary>        /// 獲取所有菜單的方法 用緩存         /// 通過userInfo.OpenId來更新緩存  每次進入會重新獲取一次菜單,        /// </summary>        /// <param name="userInfo"></param>        /// <returns></returns>        private string GetmenuHtml(BaseUserInfo userInfo, bool refreshFlag = false)        {            string cacheKey = "menuHtml_" + userInfo.OpenId;            if (refreshFlag)            {                HttpContext.Current.Cache.Remove(cacheKey);            }            if (HttpContext.Current.Cache[cacheKey] == null)            {                lock (this)                {                    if (HttpContext.Current.Cache[cacheKey] == null)                    {                         PermissionServiceSoapClient service = new PermissionServiceSoapClient();                        string systemCode = ZTOTransferFees.Foundation.ConfigHelper.GetConfigString("SystemCode");                        menuHtml = service.GetPermissionListByUser(systemCode, userInfo.Id);                        menuHtml = menuHtml.Replace("Id", "id").Replace("FullName", "name").Replace("NavigateUrl", "tabUrl").Replace("Parentid", "parentId").Replace(                                      "ImagUrl", "icon").Replace("/"Expand/":1", "open:true");                        HttpContext.Current.Cache.Add(cacheKey, menuHtml, null, DateTime.Now.AddMinutes(120), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null);                    }                }            }            return HttpContext.Current.Cache[cacheKey] as string;        }        protected override void OnInit(EventArgs e)        {            //判斷是否得到身份認證 未認證或超時時彈出登錄窗口而非跳轉到登錄頁            if (null == HttpContext.Current.User.Identity || !HttpContext.Current.User.Identity.IsAuthenticated)            {                Response.Write("<script type=/"text/javascript/">");                Response.Write("var topWin = (function (p, c) {while (p != c) {c = p;p = p.parent}return c;})(window.parent, window);");                Response.Write("try{ topWin.openLoginWindow();}catch(e){window.location='/Login.aspx'}");                Response.Write("</script>");                Response.End();            }            HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];            FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);            userData = authTicket.UserData;            JavascriptSerializer javaScriptSerializer = new JavaScriptSerializer();            userInfo = javaScriptSerializer.Deserialize<BaseUserInfo>(userData);            userInfo.ServiceUserName = BaseSystemInfo.ServiceUserName;            userInfo.ServicePassWord = BaseSystemInfo.ServicePassword;            //獲得全部菜單項、非菜單項的字符串(json)字符串            menuHtml = GetmenuHtml(userInfo);           //正在訪問的頁面,通過判斷該頁面是否在menuHtml中來進行權限判斷,按鈕等也一樣            string curUrl = HttpContext.Current.Request.FilePath;            if (!menuHtml.Contains(curUrl))            {//權限管理員的聯系方式               string authManagerInfo = ZTOTransferFees.Foundation.ConfigHelper.GetConfigString("authManagerInfo");               HttpContext.Current.Items["ErrorMessage"] = "對不起,您沒有權限訪問頁面:" + curUrl + "<br/>如有疑問,請與權限分配人聯系<br/>" + authManagerInfo;               HttpContext.Current.Server.Transfer("~/Prompt/ShowNoRigh.aspx");           }            base.OnInit(e);        }

在上面我們可以看到,通過服務已經獲取了該用戶所擁有的所有菜單及非菜單項目 menuHtml,menuHtml代碼如下,是一個Json數組, 菜單項太多,折疊起來了。

  1 [  2     {  3         "id": 1000005,  4         "parentId": null,  5         "Code": "991810201",  6         "name": "報價維護",  7         "CategoryCode": null,  8         "ImageIndex": null,  9         "SelectedImageIndex": null, 10         "tabUrl": null, 11         "icon": "/system/libs/js/tree/ztree/img/diy/1_close.png", 12         "Target": "fraContent", 13         "FormName": null, 14         "AssemblyName": null, 15         "PermissionScopeTables": null, 16         "SortCode": 1000005, 17         "Enabled": 1, 18         "DeletionStateCode": 0, 19         "IsMenu": 1, 20         "IsPublic": 1, 21         "IsVisible": 1, 22         "IsScope": 0, 23         "LastCall": null, 24         "Expand": 0, 25         "AllowEdit": 1, 26         "AllowDelete": 1, 27         "Description": null, 28         "CreateOn": "/Date(1400819927000)/", 29         "CreateUserid": "102383", 30         "CreateBy": "宋彪", 31         "ModifiedOn": "/Date(1400830672000)/", 32         "ModifiedUserid": "102383", 33         "ModifiedBy": "宋彪" 34     }, 35     { 36         "id": 1000006, 37         "parentId": 1000005, 38         "Code": "99181020101", 39         "name": "報價查詢", 40         "CategoryCode": null, 41         "ImageIndex": null, 42         "SelectedImageIndex": null, 43         "tabUrl": "/BaoJiaChaXun.aspx", 44         "icon": "/system/skin/titlebar_arrow.gif", 45         "Target": "fraContent", 46         "FormName": null, 47         "AssemblyName": null, 48         "PermissionScopeTables": null, 49         "SortCode": 1000006, 50         "Enabled": 1, 51         "DeletionStateCode": 0, 52         "IsMenu": 1, 53         "IsPublic": 1, 54         "IsVisible": 1, 55         "IsScope": 0, 56         "LastCall": null, 57         "Expand": 0, 58         "AllowEdit": 1, 59         "AllowDelete": 1, 60         "Description": null, 61         "CreateOn": "/Date(1400819973000)/", 62         "CreateUserid": "102383", 63         "CreateBy": "宋彪", 64         "ModifiedOn": "/Date(1400828358000)/", 65         "ModifiedUserid": "102383", 66         "ModifiedBy": "宋彪" 67     }, 68     { 69         "id": 1000008, 70         "parentId": null, 71         "Code": "991810202", 72         "name": "報價審核", 73         "CategoryCode": null, 74         "ImageIndex": null, 75         "SelectedImageIndex": null, 76         "tabUrl": null, 77         "icon": "/system/libs/js/tree/ztree/img/diy/2.png", 78         "Target": "fraContent", 79         "FormName": null, 80         "AssemblyName": null, 81         "PermissionScopeTables": null, 82         "SortCode": 1000008, 83         "Enabled": 1, 84         "DeletionStateCode": 0, 85         "IsMenu": 1, 86         "IsPublic": 1, 87         "IsVisible": 1, 88         "IsScope": 0, 89         "LastCall": null, 90         "Expand": 0, 91         "AllowEdit": 1, 92         "AllowDelete": 1, 93         "Description": null, 94         "CreateOn": "/Date(1400820277000)/", 95         "CreateUserid": "102383", 96         "CreateBy": "宋彪", 97         "ModifiedOn": "/Date(1400828373000)/", 98         "ModifiedUserid": "102383", 99         "M
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美在线第一页| 超碰日本道色综合久久综合| 97精品一区二区视频在线观看| 91高清在线免费观看| 中文字幕亚洲二区| 日本午夜在线亚洲.国产| 欧美性极品少妇精品网站| 亚洲欧洲日产国码av系列天堂| 日韩精品在线观看一区二区| 在线播放日韩av| 国产亚洲免费的视频看| 91精品国产自产在线| 国产精品视频久久久| 国产日韩精品在线观看| 久久这里只有精品视频首页| 亚洲欧美中文日韩在线| 一区二区中文字幕| 国产精品久久久久久久久久99| 久久精品视频在线播放| 超碰精品一区二区三区乱码| 久久影视三级福利片| 自拍亚洲一区欧美另类| 伊人亚洲福利一区二区三区| 国内精品久久久久久| 中文字幕欧美日韩va免费视频| 国产精品1234| 中文字幕精品一区久久久久| 第一福利永久视频精品| 九九精品在线播放| 国产主播欧美精品| 成人免费网站在线观看| 日韩电影视频免费| 久久久久中文字幕2018| 欧美丝袜一区二区三区| 国产精品男女猛烈高潮激情| 欧美国产日韩二区| xvideos亚洲人网站| 91久久精品国产91性色| 黑人与娇小精品av专区| 91高清视频在线免费观看| 国产精品久久久久91| 国内伊人久久久久久网站视频| 欧美日韩电影在线观看| 日韩电影免费观看中文字幕| 国产不卡精品视男人的天堂| 91青草视频久久| 亚洲欧美日韩一区在线| 在线成人激情黄色| 日本欧美国产在线| 日韩视频免费大全中文字幕| 日韩电影视频免费| 欧美www视频在线观看| 久久久久久久电影一区| 中文字幕av一区中文字幕天堂| 国产精品入口免费视频一| 日韩毛片在线看| 欧美日韩第一视频| 亚洲成年人在线播放| 国产精品18久久久久久麻辣| 伊人成人开心激情综合网| 91精品国产精品| 毛片精品免费在线观看| 91精品视频大全| 日韩乱码在线视频| 久久久久久综合网天天| 欧美专区国产专区| 欧美整片在线观看| 午夜精品久久久久久久99热| 91免费福利视频| 中文字幕精品av| 国产一区视频在线播放| 按摩亚洲人久久| 中文字幕日韩av电影| 日韩中文字幕亚洲| 国产精品久久久久久久app| 欧美激情视频一区| 91高清免费视频| 久久久成人av| 亚洲免费av电影| 欧美国产日韩中文字幕在线| 一本色道久久88综合亚洲精品ⅰ| 日韩国产欧美区| 亚洲欧美日韩一区二区三区在线| 69久久夜色精品国产7777| 欧美麻豆久久久久久中文| 欧美激情视频一区二区三区不卡| 日韩精品中文字幕在线观看| 91精品美女在线| 亚洲国产一区二区三区在线观看| 91tv亚洲精品香蕉国产一区7ujn| 日本精品免费观看| 亚洲最大福利视频网站| 久久九九有精品国产23| 久久久久久网站| 久久久999精品视频| 久久亚洲精品成人| 亚洲成色777777在线观看影院| 亚洲人成在线一二| 91精品久久久久久久久中文字幕| 亚洲国产成人在线视频| 成人乱人伦精品视频在线观看| 欧美成人免费大片| 亚洲最大激情中文字幕| 国内偷自视频区视频综合| 国产一区二区三区视频在线观看| 亚洲美女自拍视频| 欧美另类交人妖| 亚洲成人在线网| 午夜精品久久久久久久久久久久| 亚洲精选一区二区| 日本免费一区二区三区视频观看| 久久免费精品日本久久中文字幕| 日韩激情视频在线| 亚洲国产精品电影| 亚洲成av人影院在线观看| 亚洲午夜国产成人av电影男同| 91久久久国产精品| 久久成人免费视频| 黑人与娇小精品av专区| 国产精品爱久久久久久久| 久久精品久久精品亚洲人| 亚洲变态欧美另类捆绑| 5566日本婷婷色中文字幕97| 欧美黑人一级爽快片淫片高清| 91精品美女在线| 欧美疯狂xxxx大交乱88av| 国产精品黄页免费高清在线观看| 国产精品久久久久aaaa九色| 国产成人精品日本亚洲| 欧美夫妻性生活xx| 欧美亚洲国产日韩2020| 亚洲欧美另类人妖| 久久久久久久成人| 成人黄色生活片| 成人看片人aa| 韩国一区二区电影| 成人妇女淫片aaaa视频| 亚洲精品一区久久久久久| 96sao精品视频在线观看| 日韩精品免费综合视频在线播放| 久久久久久久久中文字幕| 欧美日韩国产中文字幕| 日韩视频免费中文字幕| 亚洲人线精品午夜| 狠狠躁夜夜躁久久躁别揉| 欧美激情中文网| 国产精品极品美女粉嫩高清在线| 欧美大学生性色视频| 日韩电视剧在线观看免费网站| 91高清免费在线观看| 成人精品视频99在线观看免费| 亚洲缚视频在线观看| 久久精品久久久久久| 国产丝袜一区视频在线观看| 日韩在线视频线视频免费网站| 91精品一区二区| 色婷婷久久av| 国产99久久精品一区二区永久免费| 久久精品视频在线观看| 亚州av一区二区| 亚洲国产精品999| 黑人巨大精品欧美一区免费视频| 欧美激情在线播放| 性金发美女69hd大尺寸|