扩展ASP.NET MEMBERSHIP权限功能(一 )
扩展ASP.NET MEMBERSHIP权限功能
目前常用的ASP.NET 的membership功能,可以将权限控制到页,需要我们在web.config中进行设置,如果需求稍多一点,你会发现有些力不从心,网上有很多开源的权限管理系统,但差不多都是重新设计开发,所以我这里要做的是在membership的基础上增加 用户组权限到每个页面及按钮的功能,如A组只能新增,他的页面上面就只有新增按钮,B组只能删除和修改 他的界面上就没有新增的功能,即使B组知道新增的URL,进入后也会提示无权限,各个功能都能过后台数据库进行配置,全局来控制。
membership的用法不用多说,下面讲讲思路
1. 当用户访问文件目录,读取当前目录下面的web.config
2. 根据web.config中的设定每个文件权限,并匹配数据库中的信息,如果符合条件显示按钮或页面,不成立隐藏或提示
1.数据库
创建表
aspnet_Ex_PermissionsForRoles
创建视图
vw_aspnet_Ex_PermissionsForRoles
创建存储过程
aspnet_Ex_GetPermissionByRoles
代码
CREATE PROCEDURE [dbo].[aspnet_Ex_GetPermissionByRoles]
@roles nvarchar(max)=NULL,
@path nvarchar(max)=NULL
AS
BEGIN
SET NOCOUNT ON;
declare @sql nvarchar(2000)
set @sql='select * from [vw_aspnet_Ex_PermissionsForRoles] where RoleName in('+@roles+') and ModulePath='''+@path+''''
if @roles is not null
EXEC sp_executesql @sql
END
@roles nvarchar(max)=NULL,
@path nvarchar(max)=NULL
AS
BEGIN
SET NOCOUNT ON;
declare @sql nvarchar(2000)
set @sql='select * from [vw_aspnet_Ex_PermissionsForRoles] where RoleName in('+@roles+') and ModulePath='''+@path+''''
if @roles is not null
EXEC sp_executesql @sql
END
数据库准备完毕
下面是网站结构
项目文件结构
下一篇介绍相关代码
目录
扩展ASP.NET MEMBERSHIP权限功能(四 )之页面权限
扩展ASP.NET MEMBERSHIP权限功能(三 )之权限控件
扩展ASP.NET MEMBERSHIP权限功能(二 )
扩展ASP.NET MEMBERSHIP权限功能(一 )