php用户权限分配界面

php用户权限分配界面,第1张

说一下我的思路(RBAC 模式),供你参考,邮箱不发了,由于数据库需要保密,截图也不贴了。

你在左侧导航栏做三个菜单项,分别是:

1 用户管理

2 角色管理

3 权限管理

其中 1 和 2 给管理员 *** 作,管理员可以对其进行增删改查等 *** 作;3 由软件开发者 *** 作,不能分配给管理员;普通用户对 1、2、3 都无权 *** 作。

权限管理界面,软件开发者可以对各种权限进行增删改查;

角色管理界面,管理员进去后可以对角色进行增册改查 *** 作;具体可以这样安排界面,右栏主区分成上中下三块,上面这块提供添加及查询 *** 作,中间块显示查询结果,下面这块查询结果中某条记录的明细。 增加按钮点击后,在明细区出现填写表单,具体需要填哪些内容由开发者定,一般角色名为必填项,然后同时在右边给出一个选择权限的列表,提供复选框让管理员为角色勾选分配权限;

用户管理界面跟角色界面类似,只是管理员在创建用户时是勾选角色而不是权限。

大体思路就是这样。

(PS: 数据库中当然要先设计好用户表、角色表、权限表、用户角色关联表、角色权限关联表等等)

在IIS70上以FastCGI方式配置好PHP运行环境,测试可以正常运行PHP程序后,将PHP程序部署上去,导入程序原来的数据和配置信息。很快就有问题出来啦下面我们就详细记录下。

今天准备将一个php

demo放在IIS下运行,网站在IIS下的配置是这样的:

应用程序池是集成模式下的net

framework

20(20或40没什么关系,因为php以fastCGI的方式在跑),

应用程序池标识配置为IIS内置的NETWORKSERVICE,

使用的认证方式为匿名身份验证。

打开本地的网站,访问php页面,

出现了500错误。

好吧,是权限问题,最简单的解决办法是把C:UsersAdministratorPhpstormProjectsphpDemo的权限设成Everyone,

并允许完全控制:

重新访问php页面,成功了:

上面的方法是够简单,但也太不安全了,平时本地搭个demo这样做没问题,真正上线的时候,这样做迟早出问题的。

于是重新设置,把该目录下的只读权限赋给NETWRORKSERVICE帐号再试一下

不过问题还是没有解决,访问的时候,出现了401错误

错误信息中包括显示登录用户为匿名,检查了网站下的身份验证(再点击

匿名身份验证->编辑),原来网站默认情况下,在登录方法为匿名时,使用的默认登录用户为IUSR(就是我们看到的匿名登录用户了)

那么解决办法就是:

1

将IUSR设置为C:UsersAdministratorPhpstormProjectsphpDemo的读权限,类似之前对NETWORKSERVICE的设置。

2

或选择使用应用程序池标识即可。

经试验,方法1与2都成功。

Note:NETWORKSERVICE在IIS7中隶属于iis_iusers用户组,之前对NETWORKSERVICE的设置也可以改为对iis_iusers的设置,同样也可以解决问题,只是权限被进一步放宽了而已。

以上所述就是本文的全部内容了,希望大家能够喜欢。

其实不建议用session参与权限模块

1session用来记录当前用户名,用户编码,角色编码,职位编码等等当前用户的基本配置信息

2控制权限的类获取session中的信息后,在根据你数据库中权限表做控制

把菜单成一个数据库表,指定一个键。如:

id:1, title:文章管理, icon: document, url: admin/article/index (更多字段根据需要设置)

id:2, title:产品管理, icon: cube, url: admin/product/index

id:3, title:系统设置, icon: setting, url: admin/setting/index

然后在管理员表中添加一个varchar(500) (长度根据你的菜单总数估计)或text字段

在管理员权限管理中列出所有菜单项,把id作为健值,选中的保存在管理员表的权限字段中

格式类似: 1,2,3

然后在输出菜单的时候进行权限判断

//将权限字段切割成数组

$perms = explode(',', $user['permission']);

foreach($menus as $menu){

if(in_array($perms, $menu['id'])){

echo '<a href="' $menu['url']'" >'$menu['title']'</a>';

}

}

然后在每个页面根据页面对应的权限id做一个判断

//比如在文章页面

if(!in_array($perms, 1)){

exit('没有权限');

}

以上是大体思路,具体根据你的系统设计编写代码并对应地优化。

以上就是关于php用户权限分配界面全部的内容,包括:php用户权限分配界面、php以fastCGI的方式运行时文件系统权限问题及解决方法、php 中用户权限管理出,要用到session,怎么做呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9701207.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存