对于已经毕业了3年的人来说,我真的比较惭愧。发现很多东西都没有做好。在加入了几个QQ群,一帮动力无穷的人给了我压力,也给了我动力。
一下是对于近期工作的一些总结其实也是在网上找的资料,所以别说你看过......
用户权限,下拉菜单 asp 与asp.net 共享Seesion
一、概述
对于已经毕业了3年的人来说,我真的比较惭愧。发现很多东西都没有做好。在加入了几个QQ群,一帮动力无穷的人给了我压力,也给了我动力。
一下是对于近期工作的一些总结其实也是在网上找的资料,所以别说你看过......
1:用户菜单
找了很多菜单,最后用了破解版本的
ComponentArt
2:菜单权限
分四种方式来控制
A:新系统中用户自定义组
B:公司部门
C:老系统中已存在的用户自定义组
D:个人
3:系统登录方式
局域网中:自动登录
仿照sharePoint 登出功能(域身份验证)
登出,管理员模拟身份(模拟任何用户)
4:Asp 和 Asp.net系统整理
为了使得原有的老系统能够在新的框架中运行。想了很多办法。来获取Seesion 。结果没有找到好的解决方法。最终用Iframe 嵌入了一个asp页面通过一个domain 下共享cookie 来读取Seesion
5: 用户定制菜单功能
其实就是一张用户表用来存自定义数据
二、详细介绍
菜单的介绍,无限制层级菜单与权限结合
表截图
加载用户菜单,最上层菜单是根据是否有子操作菜单,来决定是否显示
根据用户是否有权限
Code
1 private void Page_Load(object sender, System.EventArgs e)
2 {
3 if (!IsPostBack) buildMenu();
4 }
5
6 private void buildMenu()
7 {
8 DataSet set = new DataSet();
9 UserPermission permission = new UserPermission();
10 long lCardID = Convert.ToInt64(HttpContext.Current.Session["CardID"]);
11 int iDeartmentID = Convert.ToInt32(HttpContext.Current.Session["Department"]);
12
13 DataSet filterSysItem = new DataSet();
14
15 //有權限的節點
16 filterSysItem = permission.GetFilterSysItem(iDeartmentID, lCardID);
17
18 //遞歸所有的節點生成菜單
19 filterSysItem.Relations.Add("NodeRelation", filterSysItem.Tables[0].Columns["SysMenu_ID"], filterSysItem.Tables[0].Columns["Parent_SysMenu_ID"], false);
20
21 foreach (DataRow row in filterSysItem.Tables[0].Rows)
22 {
23 if (int.Parse(row["Parent_SysMenu_ID"].ToString()) == 0)
24 {
25 ComponentArt.Web.UI.MenuItem newItem = CreateItem(row);
26 Menu1.Items.Add(newItem);
27 //找出根節點對應的子節點,並加入菜單中
28 PopulateSubMenu(row, newItem);
29
30
31 }
32 }
33 }
34
35 private void PopulateSubMenu(DataRow dbRow, ComponentArt.Web.UI.MenuItem item)
36 {
37
38 foreach (DataRow childRow in dbRow.GetChildRows("NodeRelation"))
39 {
40
41 ComponentArt.Web.UI.MenuItem childItem = CreateSubItem(childRow);
42 item.Items.Add(childItem);
43 //遞歸調用生成菜單
44 PopulateSubMenu(childRow, childItem);
45
46
47 }
48 }
49
50 private ComponentArt.Web.UI.MenuItem CreateItem(DataRow dbRow)
51 {
52
53 ComponentArt.Web.UI.MenuItem item = new ComponentArt.Web.UI.MenuItem();
54 string sClientSideTarget = string.Empty;
55 int iBase = Convert.ToInt32(dbRow["SysMenu_ID"].ToString());
56 string sFrameTargetUrl = dbRow["SysMenu_Defalut_Url"].ToString();
57
58 item.Text = dbRow["SysMenu_Name"].ToString();
59 sClientSideTarget = "window.top.frames['BoardTitle'].location.href='left.aspx?categoryName=" + iBase + "';window.open('" + sFrameTargetUrl + "','mainFrame');";
60 item.ClientSideCommand = sClientSideTarget;
61 item.LookId = dbRow["SysMenu_LookId"].ToString();
62 return item;
63
64 }
65
66 private ComponentArt.Web.UI.MenuItem CreateSubItem(DataRow dbRow)
67 {
68 ComponentArt.Web.UI.MenuItem item = new ComponentArt.Web.UI.MenuItem();
69 string sClientSideTarget = string.Empty;
70 int iBase = Convert.ToInt32(dbRow["SysMenu_ID"].ToString());
71 string sFrameTargetUrl = dbRow["SysMenu_Defalut_Url"].ToString();
72
73 //sub item expand
74 if (!dbRow.IsNull("SysMenu_LookId"))
75 {
76 item.LookId = dbRow["SysMenu_LookId"].ToString();
77 }
78 if (dbRow["SysMenu_LookId"].ToString() != "ExpandableItemLook")
79 {
80 sClientSideTarget = "window.top.frames['BoardTitle'].location.href='left.aspx?categoryName=" + iBase + "';window.open('" + sFrameTargetUrl + "','mainFrame');";
81 item.ClientSideCommand = sClientSideTarget;
82 }
83 item.Text = dbRow["SysMenu_Name"].ToString();
84
85 return item;
86 }
过段时间补充