权限管理模块与页面关系

把控制的页面分类,即以模块来分类,如同角色所拥有页面一样,最终我们只为用户分配某一模块,来控制到用户只能访问相关的页面。

asp.net前端介面:


在数据库,表[ModulePages]结构如下,代码参考角色与页面关系表结构一样:

实现为模块分配页面的事件,还得写分配事件的存储过程: 

代码
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[usp_ModulePages_AssignPagesAction]
(
    
@ModuleId smallint,
    
@PagesId int,
    
@IsEnable bit
)
AS
BEGIN TRANSACTION
    
DECLARE @err int
IF (SELECT count(*)  FROM [ModulePages] WHERE [ModuleId] = @ModuleId AND [PagesId] = @PagesId )>0
    
BEGIN        
        
UPDATE [ModulePages] SET [IsEnable]=@IsEnable WHERE [ModuleId] = @ModuleId AND [PagesId] = @PagesId 
        
SET @err=@@ERROR
        
IF @err<>0            
            
ROLLBACK TRANSACTION    
    
END
ELSE
    
BEGIN
        
INSERT INTO [ModulePages] ([ModuleId],[PagesId] ,[IsEnable] ) VALUES (@ModuleId ,@PagesId ,@IsEnable)
        
SET @err=@@ERROR
        
IF @err<>0            
            
ROLLBACK TRANSACTION    
    
END
COMMIT TRANSACTION
    
GO
原文地址:https://www.cnblogs.com/insus/p/1776598.html