站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
SPB-可配置服务-权限
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>导航:</strong> [[SPB-公共元素及服务-可配置服务|上一页]]</span> <div style="clear:both;"></div> SPB的权限是通过用户角色、用户级别进行设置的,一个用户可以具有多个角色,和一个用户级别,因此一个用户的权限是由用户角色及用户级别的权限合并得到的。权限合并时需要遵循以下原则: # 禁止优先; # 允许的权限取合集; # 权限额度取最大; '''一、角色''' SPB的角色可以自由添加,分为两种类型: #普通角色(例如:SystemAdministrator):可以直接把用户赋予某一个或多个普通角色 #虚拟角色(例如:Owner):不能把用户赋予虚拟角色,程序的默认设计或者通过在具体上下文环境中经过计算得到的角色 SPB的角色分为全局使用及个别应用使用,例如:SystemAdministrator属于全局,ClubMember仅属于圈子。 '''例如:''' [[Image:Spacebuilder099.jpg]] 添加新的角色时需要扩展SpaceBuilder.Common.UserRoleNames. '''例如''': <pre> /// <summary> /// Club中用户角色扩展 /// </summary> public static class UserRoleNamesExtensions { /// <summary> /// 圈子管理员 ///</summary> public static string ClubManager(this UserRoleNames userRoleNames) { return "ClubManager"; } /// <summary> /// 圈子成员 ///</summary> public static string ClubMember(this UserRoleNames userRoleNames) { return "ClubMember"; } } </pre> '''二、用户级别''' 类似用户组,每个用户只能属于一个用户级别。用户级别根据用户综合积分递增。 '''另''':用户级别可以考虑增加个性展示的功能,比如使用不同的图片、颜色; '''三、权限项目(PermissionItems)及配置''' *权限项目 权限项目是指在我们的应用中哪些操作需要进行权限控制,把需要进行权限控制的操作项通过编码(ItemKey)的方式存入PermissionItems。并且可以设置哪些权限项目需要在用户角色中进行配置、哪些权限项目需要在用户级别中进行配置。进行权限配置时除了可以设置是否可以进行某项操作以外,还可以设置权限额度(例如:级别1和级别2的用户都有上传附件的权限,但是级别1的用户上传附件只能上传1M的附件,而级别2的用户可以上传5M的附件)。 '''示例''': [[Image:Spacebuilder0100.jpg]] '''注意''': #ItemKey必须唯一; #启用权限设置时,权限额度才有作用,如果启用权限额度则设置权限时允许设置所允许权限的具体数值; #权限项目用于与用户角色和用户级别关联来设置相应的权限; *权限项目与角色及用户级别配置 [[Image:Spacebuilder0101.jpg]] 配置说明: #配置包括:未设置、允许、禁止 三种配置,其中未设置在以上表格中用“---”表示; #另外还有是否锁定的设置,即某项配置是否允许在后台进行修改,如果不允许管理员修改则可以设置成“锁定”; '''四、如何使用权限''' 以[[论坛]]为例,进行说明: *首先分析有哪些功能,这些功能产生哪些操作。论坛包含:查看论坛主题、创建论坛主题、上传论坛附件等操作。 *另外分析论坛是否需要加入新的用户角色,经过分析需要加入论坛版主的角色。 [[Image:Spacebuilder0102.jpg]] 生成加入角色的[[sql]]脚本. '''例如''': <pre> INSERT dbo.spb_Roles (RoleID, RoleName, LoweredRoleName, FriendlyRoleName, IsBuiltIn, ConnectToUser, ApplicationID, Description, Enabled) VALUES (7, N'Moderator', N'moderator', N'版主', 1, 0, 211, N'', 1) 利用扩展方法定义SpaceBuilder.Common.UserRoleNames的扩展,注意保持Moderator()方法的返回值与上边sql脚本中的RoleName一致。 /// <summary> /// Forum中用户角色扩展 /// </summary> public static class UserRoleNamesExtensions { /// <summary> /// 论坛版主 /// </summary> public static string Moderator(this UserRoleNames userRoleNames) { return "Moderator"; } } </pre> *分析这些操作是否涉及到权限控制,涉及到权限控制的操作设置成权限项目并定义ItemKey,例如:ViewForumThread(查看论坛主题)、CreateForumThread(创建论坛主题)、UploadForumAttachment(上传论坛附件),一定确保ItemKey不会重复。分析哪些权限项目需要权限额度(比如允许上传图片,但是仅允许上传100M),哪些权限项目需要根据用户级别的不同而不同(即是否允许在用户级别中配置); *生成权限配置的初始化sql脚本. '''例如''': <pre> INSERT [dbo].[spb_PermissionItems] ([ItemID], [ApplicationID], [ItemKey], [ItemName], [DisplayOrder], [EnabledPermissionLine], [EnabledInUserRole], [EnabledInUserRank]) VALUES (15, 211, N'CreateForumThread', N'发布主题', 104, 0, 1, 0) INSERT [dbo].[spb_PermissionItems] ([ItemID], [ApplicationID], [ItemKey], [ItemName], [DisplayOrder], [EnabledPermissionLine], [EnabledInUserRole], [EnabledInUserRank]) VALUES (18, 211, N'UploadForumAttachment', N'上传附件', 107, 1, 1, 1) INSERT [dbo].[spb_PermissionItemRolesInUserRoles] ([ItemID], [RoleID], [AllowType], [AllowedValue], [IsLocked]) VALUES (38, 1, 1, 0, 1) INSERT [dbo].[spb_PermissionItemRolesInUserRoles] ([ItemID], [RoleID], [AllowType], [AllowedValue], [IsLocked]) VALUES (38, 2, 1, 0, 1 ) </pre> *定义权限验证业务逻辑类:SpaceBuilder.Forum.ForumPermission。该权限验证类主要有两个目的: #获得用户在该上下文中的所有权限,包括虚拟角色。例如需要判定用户在某个版块是否具备版主的用户角色; #该应用独有的权限验证逻辑。例如:[[主题]]锁定则不允许回复; *在Controller中调用SpaceBuilder.Forum.ForumPermission进行权限判定及验证; ==参考资料== *[http://doc.spacebuilder.cn SpaceBuilder官方] [[category:SpaceBuilder|S]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)