求一权限管理的解决方案!200分(不够再加)!!

zhuwevmfc 2004-09-20 10:25:51
要设计一套管理系统,需要权限管理,像windows的权限管理一样,能细化到每个功能。
管理员可以控制某个帐号的具体操作范围!做的希望能和c/s程序一样!
那为高手能给点解决方案,最好有实际b/s的案例给我参考!分不够可以另开贴加分~!分不是问题!
...全文
328 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hreoghost 2005-06-09
  • 打赏
  • 举报
回复
学习!~
wangrenda 2004-09-20
  • 打赏
  • 举报
回复
楼上为了复制我得帖子?
savagewang1978 2004-09-20
  • 打赏
  • 举报
回复
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user_operation]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[user_operation]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user_operation_D]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[user_operation_D]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Operation_D]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Operation_D]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PopedomD]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[PopedomD]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PopedomM]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[PopedomM]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[group]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[group]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[operation_M]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[operation_M]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user_group]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[user_group]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[users]
GO

CREATE TABLE [dbo].[Operation_D] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[groupID] [int] NULL ,
[opt_MasterID] [int] NULL ,
[opt_DetialID] [int] NULL ,
[opt_Detial] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[PopedomD] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[MasterID] [int] NOT NULL ,
[DetialTitle] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[PopedomM] (
[MasterID] [int] IDENTITY (1, 1) NOT NULL ,
[title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[group] (
[grp_id] [int] IDENTITY (1, 1) NOT NULL ,
[grp_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[grp_info] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[operation_M] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[group_ID] [int] NULL ,
[opt_masterID] [int] NULL ,
[opt_master] [bit] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[user_group] (
[ug_id] [int] IDENTITY (1, 1) NOT NULL ,
[ug_user] [int] NULL ,
[ug_group] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[users] (
[user_id] [int] IDENTITY (1, 1) NOT NULL ,
[user_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[user_grade] [smallint] NULL
) ON [PRIMARY]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE VIEW dbo.user_operation
AS
SELECT dbo.users.user_name, dbo.operation_M.opt_masterID,
dbo.operation_M.opt_master
FROM dbo.user_group INNER JOIN
dbo.users ON dbo.user_group.ug_user = dbo.users.user_id RIGHT OUTER JOIN
dbo.operation_M INNER JOIN
dbo.[group] ON dbo.operation_M.group_ID = dbo.[group].grp_id ON
dbo.user_group.ug_group = dbo.[group].grp_id

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE VIEW dbo.user_operation_D
AS
SELECT dbo.users.user_name, dbo.Operation_D.opt_DetialID,
dbo.Operation_D.opt_Detial
FROM dbo.Operation_D INNER JOIN
dbo.[group] ON dbo.Operation_D.groupID = dbo.[group].grp_id LEFT OUTER JOIN
dbo.user_group INNER JOIN
dbo.users ON dbo.user_group.ug_user = dbo.users.user_id ON
dbo.[group].grp_id = dbo.user_group.ug_group

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
owenbeckham 2004-09-20
  • 打赏
  • 举报
回复
把权限放到一个表里
然后在页面page_load 中去judge 就可以了
wangrenda 2004-09-20
  • 打赏
  • 举报
回复
这是我写的
主功能用bit 0,1控制
子功能添加,删除,修改,查询 分别了1.2.4.8
用户子功能权限为上面得相加
如果有添加和删除功能则为1+2=3
判断时候是否有权限,则将功能与页面权限编码相与,
例如3&1>0则有添加权限
3&8=0则不具有查询条件
wangrenda 2004-09-20
  • 打赏
  • 举报
回复
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user_operation]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[user_operation]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user_operation_D]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[user_operation_D]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Operation_D]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Operation_D]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PopedomD]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[PopedomD]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PopedomM]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[PopedomM]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[group]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[group]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[operation_M]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[operation_M]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user_group]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[user_group]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[users]
GO

CREATE TABLE [dbo].[Operation_D] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[groupID] [int] NULL ,
[opt_MasterID] [int] NULL ,
[opt_DetialID] [int] NULL ,
[opt_Detial] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[PopedomD] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[MasterID] [int] NOT NULL ,
[DetialTitle] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[PopedomM] (
[MasterID] [int] IDENTITY (1, 1) NOT NULL ,
[title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[group] (
[grp_id] [int] IDENTITY (1, 1) NOT NULL ,
[grp_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[grp_info] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[operation_M] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[group_ID] [int] NULL ,
[opt_masterID] [int] NULL ,
[opt_master] [bit] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[user_group] (
[ug_id] [int] IDENTITY (1, 1) NOT NULL ,
[ug_user] [int] NULL ,
[ug_group] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[users] (
[user_id] [int] IDENTITY (1, 1) NOT NULL ,
[user_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[user_grade] [smallint] NULL
) ON [PRIMARY]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE VIEW dbo.user_operation
AS
SELECT dbo.users.user_name, dbo.operation_M.opt_masterID,
dbo.operation_M.opt_master
FROM dbo.user_group INNER JOIN
dbo.users ON dbo.user_group.ug_user = dbo.users.user_id RIGHT OUTER JOIN
dbo.operation_M INNER JOIN
dbo.[group] ON dbo.operation_M.group_ID = dbo.[group].grp_id ON
dbo.user_group.ug_group = dbo.[group].grp_id

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE VIEW dbo.user_operation_D
AS
SELECT dbo.users.user_name, dbo.Operation_D.opt_DetialID,
dbo.Operation_D.opt_Detial
FROM dbo.Operation_D INNER JOIN
dbo.[group] ON dbo.Operation_D.groupID = dbo.[group].grp_id LEFT OUTER JOIN
dbo.user_group INNER JOIN
dbo.users ON dbo.user_group.ug_user = dbo.users.user_id ON
dbo.[group].grp_id = dbo.user_group.ug_group

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

eboywy 2004-09-20
  • 打赏
  • 举报
回复
我就是按CS要求做的。
eboywy 2004-09-20
  • 打赏
  • 举报
回复
你看一下是不这这种页面级的权限呢。
是的话我可以解决。
http://community.csdn.net/Expert/topic/3295/3295764.xml?temp=.6820337
jamzh 2004-09-20
  • 打赏
  • 举报
回复
学习!~
雪狐 2004-09-20
  • 打赏
  • 举报
回复
学习一下:能不能也给我一份呀:
foxflyhigher@126.com
wangrenda 2004-09-20
  • 打赏
  • 举报
回复
库都给你了,里面有两个视图,
1个是提取主项权限得,
另一个是提取子项权限得.
就用这两个视图就够了,
还用代码?
zhuwevmfc 2004-09-20
  • 打赏
  • 举报
回复
eboywy(飞影)
//能把你的测试代码给我一份!
zhuweivc@yahoo.com.cn
yichuan1982 2004-09-20
  • 打赏
  • 举报
回复
设置一个权限字段,然后根据它的权限赋予它相应的操作
zhuwevmfc 2004-09-20
  • 打赏
  • 举报
回复
wangrenda(浪人)
///能不能把具体的实现代码给我一份呀!
小弟十分感谢!
morality 2004-09-20
  • 打赏
  • 举报
回复
设置一个用户表,角色表,功能表,用户角色对照表,角色功能对照表。

这样可以非常灵活的为每个角色赋予相应的功能,而用户隶属于该角色,就自然继承了该角色所具有的功能。

以后也可以根据人员的流动,角色的改变,灵活的改变用户的相应权限。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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