jianyi
------CodeArt
博客园
首页
新随笔
联系
订阅
管理
随笔 - 77 文章 - 1 评论 - 737 trackbacks - 86
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
camlquery 类库下载:
http://www.codeplex.com/camlquery
SPCAMLEditor 下载:
http://www.codeplex.com/SPCAMLEditor
与我联系
发短消息
搜索
留言簿
(22)
给我留言
查看留言
我参与的团队
SharePoint团队(0/732)
随笔分类
(68)
.NET相关(1)
DBO - database object(3)
Exchange(2)
Javascript/html/xml(1)
Office开发(3)
Sharepoint(50)
SilverLight
WSS代码示例
控件开发(2)
企业级开发(6)
My Friends
sunmoonfire
SilverLight
SilverlightSDK中文版
wss
11‘Site
kaneboy's blog
SharePoint Team Blog
积分与排名
积分 - 81766
排名 - 484
最新随笔
1. SmartFormWebPart发布最新版+源码
2. 如何更改列表项前的New标记的天数设置(days-to-show-new-icon )
3. MOSS数据库服务器迁移步骤
4. 控制视图页面的访问权限
5. SharePoint如何模拟用户
6. 多域环境下people picker查找不到用户问题的解决
7. CAML查询时用户类型字段的处理
8. SPCAMLEditor使用系列(2)--利用SPCAMLEditor,实现列表顺序号。
9. MOSS字段编辑权限控制方案--发布源码
10. SPCAMLEditor发布1.1版本
11. SPCAMLEditor使用系列(1)--利用SPCAMLEditor,10分钟打造一个在线视频播放库
12. SPCAMLEditor1.0 publish
13. 发布一个小工具---SPCamlEditor
14. 关于代码调用SSP获取UserProfile出错的解决方案
15. WSS Alert(邮件提醒) 定制
最新评论
1. re: WSS页面定制系列(4)--利用SmartForm和用户控件定制表单页面
@nirvanalst
哈哈,我也研究了半天没找到“好的”思路。不过,大多数情况下用RenderingTemplate来改改界面也够了把。
--jianyi
2. re: WSS页面定制系列(4)--利用SmartForm和用户控件定制表单页面
@jianyi
多谢老大答复,还盼望老大能在空闲时发布一版可以支持非列表页面使用控件模板的SmartFormWebPart,小弟研究了半天也没有找到思路:)
--nirvanalst
3. re: 强大的SPGridView
@cdboy
haha,分页+过滤得操做到没试过...
--jianyi
4. re: WSS页面定制系列(4)--利用SmartForm和用户控件定制表单页面
@nirvanalst
忘了说明了,SmartFormWebPart当前不支持在非列表页面使用控件模板,在首页这种地方只能使用RenderingTemplate。
--jianyi
5. re: CodeArt.SharePoint.CamlQuery_0.9发布(源码)
@lxrc
利用事件接收器吧,里面有删除事件。google:MOSS 事件接收器
--jianyi
阅读排行榜
1. Office文档在线编辑的实现之二(3878)
2. DBO -- 一个新的轮子(3002)
3. WSS3.0开发--你还在为写CAML痛苦吗?(2543)
4. DBO -- 实体设计 -- 对象关联还是ID关联 (2513)
5. web录音的实现 (2425)
评论排行榜
1. WSS页面定制系列(4)--利用SmartForm和用户控件定制表单页面(80)
2. WSS3.0开发-过滤列表内容(2)--一个增强的列表元数据查询webpart(SmartQueryWebPart)(62)
3. Office文档在线编辑的实现之二(42)
4. DBO -- 一个新的轮子(36)
5. DBO -- 实体设计 -- 对象关联还是ID关联 (34)
控制视图页面的访问权限
问题:
控制视图页面的访问权限,设置只有指定组的用户可以访问。
解决方案:
写一个webpart,添加到需要控制权限的页面,如何当前用户不属于指定的组,则不允许用户访问当前页面。
代码:
//
----------------------------------------------------------------
//
CodeArt
//
//
文件描述:
//
//
创 建 人: jianyi
//
创建日期: 2008-7-11
//
//
修订记录:
//
//
----------------------------------------------------------------
using
System;
using
System.Collections.Generic;
using
System.Collections;
using
System.ComponentModel;
using
System.Text;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
Microsoft.SharePoint;
using
System.Collections.Specialized;
using
Microsoft.SharePoint.Utilities;
namespace
ShareOffice.WebParts
{
public
class
RightControlPart : WebPart
{
private
string
_Groups
=
""
;
[WebBrowsable]
[WebDescription(
"
有权访问的组,用;间隔
"
)]
[Personalizable(PersonalizationScope.Shared)]
public
string
Groups
{
get
{
return
_Groups; }
set
{ _Groups
=
value; }
}
protected
override
void
OnLoad(EventArgs e)
{
base
.OnLoad(e);
this
.Title
=
""
;
base
.ChromeType
=
PartChromeType.None;
SPUser user
=
SPContext.Current.Web.CurrentUser;
//
管理员可以访问
if
(user.IsSiteAdmin
&&
String.IsNullOrEmpty(
this
.Groups))
return
;
//
检测用户是否属于配置的组
string
[] arr
=
this
._Groups.Split(
'
;
'
);
StringCollection userGroups
=
new
StringCollection();
foreach
(SPGroup g
in
user.Groups)
{
userGroups.Add(g.Name.ToLower());
}
foreach
(
string
g
in
arr )
{
if
(userGroups.Contains(g.ToLower()))
return
;
}
SPUtility.TransferToErrorPage(
"
您没有权限访问此视图.
"
);
}
}
}
这种方法的一个适用场景:
一个列表做两个视图:
视图1(默认视图): 采用某个用户字段=[本人做过滤],普通用户可以查看到跟自己有关的数据。
视图2:显示所有记录。在视图2页面上放置这个权限控制webpart,设置只有某个组可以访问。
posted on 2008-07-12 01:25
jianyi
阅读(592)
评论(14)
编辑
收藏
所属分类:
Sharepoint
FeedBack:
#1楼
2008-07-14 09:08
pccai
我认为直接读列表或者视图的权限设置,再与当前用户组或者访问群体作比较更好吧。
回复
引用
查看
#2楼
2008-07-14 10:23
王彬彬
视图默认是没有权限设置的,1楼的思路不可行吧。
jianyi的方式是简单有效的
回复
引用
查看
#3楼
2008-07-14 15:02
jdxyw
LZ,我有个问题想问,就是说,对于一个site 或是list ,library都有自己的权限可以设置,那么对于视图设置的意义在于什么?还是说像二楼所说的,对于一个page来说,它是没有权限限制的。可是一个page在一个site中,它应该继承自site啊。
回复
引用
查看
#4楼
[
楼主
] 2008-07-14 20:39
jianyi
@jdxyw
page权限是集成site,同一个list的多个视图之间默认权限是一样的。如果有这种需求:某个列表普通用户只能看到自己提交的项目,管理员可以看到所有数据,怎么实现呢? 默认要采用项目级别的权限控制(手工配置或写代码),本文中是另一种思路:设置两个视图,视图1按照用户过滤,视图2不过滤,但是采用webpart控制页面权限。
回复
引用
查看
#5楼
2008-07-15 12:19
假正经哥哥
好像是我问的,
这个解决方案我觉得不大好,如果可以在视图中写caml搞定就好了
用户不能创建新的视图。。
回复
引用
查看
#6楼
2008-07-15 12:21
假正经哥哥
jianyi哥哥有没有做过 moss中的列表权限与其他权限系统整合?
回复
引用
查看
#7楼
2008-07-15 16:10
春之歌 [未注册用户]
视图可以按用户或组设置权限是很典型的。我还没来得及用,只是想如果能按建义早先字段级权限的实现思路应该是很实用的。先谢谢建义。另外,我还有一个考题:如何控制“内容类型”的权限哟?
回复
引用
#8楼
[
楼主
] 2008-07-16 11:01
jianyi
@假正经哥哥
没做过--不难做把--采用类似的方案,加个webpart去控制。
回复
引用
查看
#9楼
[
楼主
] 2008-07-16 11:03
jianyi
@假正经哥哥
视图里写CAML是最好的,但是我实验下来,没找到按照用户组过滤的--倒是有一个,但那个只能按照从当前的某个字段中取用户组。
回复
引用
查看
#10楼
[
楼主
] 2008-07-16 11:04
jianyi
@春之歌
控制内容类型的权限是可以按照字段权限的实现思路来的,那个新建菜单也是有模板的,修改以下,嵌入自己的逻辑即可。
回复
引用
查看
#11楼
2008-07-16 18:44
春之歌 [未注册用户]
建义,能否按实现控制字段权限的方案模式,来实现对视图权限的控制呢,那样看起来更完美。
回复
引用
#12楼
2008-07-16 22:00
假正经哥哥
@jianyi
上次那个好像可以用把。
与其他系统整合要做成通用的
回复
引用
查看
#13楼
[
楼主
] 2008-07-16 23:23
jianyi
@假正经哥哥
当然作成通用的,比如跟统一授权结合,把URL注册到里面去,然后加载的时候判断用户对URL有无权限. 用HttpModule吧,考虑到性能,做个缓存。不用URL也可以,可以考虑用列表的GUID或视图的GUID做权限标识。
回复
引用
查看
#14楼
2008-08-06 17:46
xilang [未注册用户]
如果能做成成品更好了,厉害,好好学习了
回复
引用
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
博客园首页
新闻频道
社区
小组
博问
网摘
闪存
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2008-07-14 20:35 编辑过
成果网帮您增加网站收入
相关文章:
mojoPortal学习笔记之页面访问权限控制
svn 实现精细的目录访问权限控制
访问权限
[转]Subversion之路--实现精细的目录访问权限控制
怎样在Web开发中完美控制IE标题栏
控制每个页面的访问权限
相关链接:
所属分类的其他文章:
MOSS数据库服务器迁移步骤
控制视图页面的访问权限
SharePoint如何模拟用户
多域环境下people picker查找不到用户问题的解决
CAML查询时用户类型字段的处理
SPCAMLEditor使用系列(2)--利用SPCAMLEditor,实现列表顺序号。
SPCAMLEditor发布1.1版本
SPCAMLEditor使用系列(1)--利用SPCAMLEditor,10分钟打造一个在线视频播放库
SPCAMLEditor1.0 publish
发布一个小工具---SPCamlEditor
最新IT新闻:
Google十年市值达1500亿美元 创造奇迹
GMail:回过头来支持IE6
Google十年大变样
谷歌十年创新路
十年回顾:Google的互联网经济