高分求助!根据用户权限动态加载菜单问题。。。

wxl3833090 2011-05-13 10:38:05
成功登陆界面,返回该用户名的权限,动态加载菜单。

问题1:权限分管理员和普通用户两种,菜单分全集和子集。全集仅对管理员开放,由管理员建立子集菜单,普通用户登录后,载入自己权限的子集菜单进行操作;要建立不同的用户菜单只有建立不同的子集菜单;菜单分全集和子集最好存数据库进行;仅管理员有修改建立子集菜单的入口(菜单)

问题2:如果30分钟内用户无任何操作,自动退出平台

想每个用户登录后加载自己权限的菜单,不是用菜单.visible=false来屏蔽, 想要代码或实例。请大家指教菜鸟吧,学习~

...全文
334 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxl3833090 2011-05-31
  • 打赏
  • 举报
回复
请教高手第二个问题的思路
lliai 2011-05-24
  • 打赏
  • 举报
回复
在数据表中定义个用户的权限,在菜单里用不可见来屏蔽。这样最简单。效果一样。
Forrest23 2011-05-24
  • 打赏
  • 举报
回复
每个用户的权限 存在数据库中,进系统根据用户 去读取 然后动态加载菜单。。
huangweizhao 2011-05-22
  • 打赏
  • 举报
回复
简单的还是将菜单的visible属性设置成false。
动态加载比较麻烦!
htpower 2011-05-22
  • 打赏
  • 举报
回复
http://blog.csdn.net/htpower/archive/2007/08/19/1750340.aspx
http://blog.csdn.net/htpower/archive/2011/01/28/6168366.aspx
参考
Tosp2012 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tosp2012 的回复:]
1、建立一个权限表S_UserLimit,菜单名、用户名、权限1、权限2...;权限的值用1,0来区别
2、登陆时,select 菜单名,权限1,权限2 from S_UserLimit where 用户名=登陆用户名
3、查询的结果填充到Dataset
4、for 循环,赋值权限
for i to Ds.Table(0).Row.Count-1
select case Ds.Tab……
[/Quote]

以上为伪代码,我就是这么做。
Tosp2012 2011-05-20
  • 打赏
  • 举报
回复
1、建立一个权限表S_UserLimit,菜单名、用户名、权限1、权限2...;权限的值用1,0来区别
2、登陆时,select 菜单名,权限1,权限2 from S_UserLimit where 用户名=登陆用户名
3、查询的结果填充到Dataset
4、for 循环,赋值权限
for i to Ds.Table(0).Row.Count-1
select case Ds.Table(0).Row(item("菜单名")
case "文件"
M_File.visible=Ds.Table(0).Row(i).item("权限1")
case "打开"
M_Open.Visible=Ds.Table(0).Row(i).item("权限1")
...
End Select
Next
rmini 2011-05-20
  • 打赏
  • 举报
回复
有同样需求,关注中...
Just4life 2011-05-20
  • 打赏
  • 举报
回复
我觉得主要是用户权限判断这一块稍微麻烦点
菜单按照不同权限加载,这个不难
wxl3833090 2011-05-20
  • 打赏
  • 举报
回复
这写死了,不能通过数据库来修改了呀
wxl3833090 2011-05-13
  • 打赏
  • 举报
回复
用INI文件加载菜单也可以,有思路就是想要点代码看看
eskimolee 2011-05-13
  • 打赏
  • 举报
回复
有同样需求,关注中。。。
wxl3833090 2011-05-13
  • 打赏
  • 举报
回复
登录时是查询表,现在关键是如何在程序中添加提取权限,再根据权限来加载菜单,有类似的例子也可以

Dim tablename As String
tablename = "adminuser"
Dim SearchSQL As String
SearchSQL = "select username,password from adminuser where username='" & Txt_Username.Text & "'" '可添加权限表
Try
ExecuteSQL(SearchSQL, tablename)
If myrow.Item(1) = Txt_pwd.Text Then
MsgBox("成功登陆") '可添加当前权限
Dim FormMain As New FormMain
FormMain.Show()
Me.Hide()
'Dim project As String
'Dim prompt As String = "请输入新的工程名:"
'project = InputBox(prompt, Me.Txt_Username.Text)
Else
MsgBox("密码不正确!", vbOKOnly + vbExclamation, "警告")
Exit Sub
End If
Catch
MsgBox("用户名不存在!", vbOKOnly + vbExclamation, "警告")
End Try
allanli 2011-05-13
  • 打赏
  • 举报
回复
我们的界面权限限制也是采用类似原理
不过我们是通过一个表记录这个你所谓的子集的权限
然后用户登录的时候查询这个表,提取属于自己的子集,同事判断是否有权限,只提取有权限的就可以了
zixingcheng_ 2011-05-13
  • 打赏
  • 举报
回复
最简单的就是用Visible,我就是用这个的,没必要整那么复杂的,给自己找麻烦。
也可以动态的生成,按定好的级别生成菜单,然后添加事件(同一个函数,单击时Select菜单名调用对应的函数),这个必须菜单名定好,实际也是换汤不换药想破解还是能整的,可以加密,麻烦。

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧