检查用户是否有访问权限

如何实现用户是否有访问页面的权限,我们可以在asp.net的Page_Load中,取得当前网页名称与当前用户,来检查到用户是否有对此页访问权。

可以通过检索[UsersRole]表和[UsersModule]表,是否有相关记录,如果有即有访问权限,反之,即是拒绝访问。

存储过程: 

ExpandedBlockStart.gif 代码
SET  ANSI_NULLS  ON
GO
SET  QUOTED_IDENTIFIER  ON
GO
CREATE   PROCEDURE   [ dbo ] . [ usp_CheckAuthorizationForAccessPages ]
(
    
@UsersId   int ,
    
@PagesId   int
)
AS
DECLARE   @UsersRoleCount   int , @UsersModuleCount   int @Result   bit
-- 检索用户所属角色
SELECT   @UsersRoleCount   = ( SELECT   COUNT ( * FROM   [ UsersRole ]  UR  INNER   JOIN   [ RolePages ]  RP  ON  UR. [ RoleId ]   =  RP. [ RoleId ]   WHERE  UR. [ IsEnable ]   =   1   AND  RP. [ IsEnable ]   =   1   AND  UR. [ UsersId ]   =   @UsersId   AND  RP. [ PagesId ]   =   @PagesId  )
-- 检索用户拥有访问的模块
SELECT   @UsersModuleCount   = ( SELECT   COUNT ( * FROM   [ UsersModule ]  UM  INNER   JOIN   [ ModulePages ]  MP  ON  UM. [ ModuleId ]   =  MP. [ ModuleId ]   WHERE  UM. [ Purview ]   >   0   AND  MP. [ IsEnable ]   =   1   AND  UM. [ UsersId ]   =   @UsersId   AND  MP. [ PagesId ]   =   @PagesId  )

    
IF  ( @UsersRoleCount   >   0   OR   @UsersModuleCount   >   0 )
        
-- 拥有访问权
         SET   @Result   =   1    
    
ELSE
        
-- 访问拒绝
         SET   @Result   =   0   
    
RETURN   @Result

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值