zoukankan      html  css  js  c++  java
  • 权限管理角色与页面关系

    做权限管理,我们要做好某一个角色所拥有的控制页面,因此,会在数据库中,建立一张[RolePages]来存储角色与控制页面的关系信息。

     在Asp.net介面,如下示图:

    表结构如下:

    代码
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE TABLE [dbo].[RolePages](
        
    [RoleId] [smallint] NOT NULL,
        
    [PagesId] [int] NOT NULL,
        
    [IsEnable] [bit] NOT NULL
    ON [PRIMARY]

    GO

    ALTER TABLE [dbo].[RolePages]  WITH CHECK ADD  CONSTRAINT [FK_RolePages_Pages] FOREIGN KEY([PagesId])
    REFERENCES [dbo].[Pages] ([PagesId])
    ON UPDATE CASCADE
    ON DELETE CASCADE
    GO

    ALTER TABLE [dbo].[RolePages] CHECK CONSTRAINT [FK_RolePages_Pages]
    GO

    ALTER TABLE [dbo].[RolePages]  WITH CHECK ADD  CONSTRAINT [FK_RolePages_Role] FOREIGN KEY([RoleId])
    REFERENCES [dbo].[Role] ([RoleId])
    ON UPDATE CASCADE
    ON DELETE CASCADE
    GO

    ALTER TABLE [dbo].[RolePages] CHECK CONSTRAINT [FK_RolePages_Role]
    GO

    接下来,我们建立存储过程,专为角色分配页面。

    代码
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE PROCEDURE [dbo].[usp_RolePages_AssignPagesAction]
    (
        
    @RoleId smallint,
        
    @PagesId int,
        
    @IsEnable bit
    )
    AS
    BEGIN TRANSACTION
        
    DECLARE @err int
    IF (SELECT count(*)  FROM [RolePages] WHERE [RoleId] = @RoleId AND [PagesId] = @PagesId ) > 0
        
    BEGIN        
            
    UPDATE [RolePages] SET [IsEnable]=@IsEnable WHERE [RoleId] = @RoleId AND [PagesId] = @PagesId 
            
    SET @err=@@ERROR
            
    IF @err<>0            
                
    ROLLBACK TRANSACTION    
        
    END
    ELSE
        
    BEGIN
            
    INSERT INTO [RolePages] ([RoleId],[PagesId] ,[IsEnable] ) VALUES (@RoleId ,@PagesId ,@IsEnable)
            
    SET @err=@@ERROR
            
    IF @err<>0            
                
    ROLLBACK TRANSACTION    
        
    END
    COMMIT TRANSACTION
        
    GO
  • 相关阅读:
    [原创] 毕设---在myeclipes中安装Hadoop开发插件
    [转]Linux下RPM软件包的安装及卸载 yum操作
    [转]结构化、半结构化和非结构化数据
    [转]这5种必知的大数据处理框架技术
    [转]浅谈Hive vs. HBase 区别在哪里
    前端资源整理
    每个程序员都应该知道的10大基础算法
    Python Day14(HTML)
    Python Day13(yaml)
    Python Day12(补充)
  • 原文地址:https://www.cnblogs.com/insus/p/1776475.html
Copyright © 2011-2022 走看看