手记

权限管理----模块与页面关系

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

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

 

 

0人推荐
随时随地看视频
慕课网APP