权限管理,不但有角色大方面来控制用户所拥有的权限,还是以模块来控制,这样可以让权限分得更细些。
这方法与角色管理表结构与存储过程是一样的,只是一些表名写字段名称不一样而已。
在asp.net后台管理介面如下截图:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SNiJzMiRDZkBTNhRTMmRDZ3cjNjVWZyITNykjYlVWOi9CXyAzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL3M3Lc9CX6MHc0RHaiojIsJye.png)
数据表[Module]结构如下:
代码
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Module](
[ModuleId] [smallint] IDENTITY(1,1) NOT NULL,
[ModuleName] [nvarchar](50) NOT NULL,
[Description] [nvarchar](100) NOT NULL,
PRIMARY KEY CLUSTERED
(
[ModuleId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UK_Module_UD980sA6] UNIQUE NONCLUSTERED
[ModuleName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
插入存储过程usp_Module_Insert:
CREATE PROCEDURE [dbo].[usp_Module_Insert]
@ModuleName nvarchar(50),
@Description nvarchar(50)
)
AS
SELECT [ModuleName] FROM [Module] WHERE [ModuleName]=@ModuleName
IF @@ROWCOUNT>0
BEGIN
RAISERROR(N'此模块已经存在,无法添加!',16,1)
RETURN
END
ELSE
BEGIN TRANSACTION
INSERT INTO dbo.Module([ModuleName],[Description]) VALUES (@ModuleName,@Description)
IF @@ERROR<>0
BEGIN
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION
更新存储过程usp_Module_Update:
CREATE PROCEDURE [dbo].[usp_Module_Update]
@ID tinyint,
@ModuleName nvarchar(50),
@Description nvarchar(50)
SELECT [ModuleName] FROM [Module] WHERE [ModuleName]=@ModuleName AND [ModuleId]<>@ID
RAISERROR(N'此模块已经存在,无法更新!',16,1)
RETURN
UPDATE [Module] SET [ModuleName]=@ModuleName,[Description]=@Description WHERE [ModuleId]=@ID
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION