Kaneboy's Blog

SharePoint & Office Zealot
随笔 - 361, 评论 - 3663, 引用 - 201

导航

关于






Passed:
SPS2003 Infrastructure√
SPS2003 Custom Applications√
TS : WSS3.0 Configuration√
TS : WSS3.0 App Development√
TS : MOSS2007 Configuration√
TS : MOSS2007 App Development√
MCPD : Web Development√

此Blog中的文章和随笔只代表作者某一时间内的个人观点或结论,不代表任何公司立场和观点,也对其正确性没有任何担保或假设。(版权声明:作者原创文章和随笔的转载,请知会作者。)

点击这里查看此blog所有SharePoint文章!

SharePoint 2007 Starter Page

SharePoint External Binary Storage
QuickPart : 用户控件包装器 for SharePoint2007






标签

每月存档

最新留言

广告

 
下面的文档原本是我写给客户作为开发参考的,觉得应该也有不少朋友会觉得需要,所以贴出来。文档中说明了如何完成两种编程操作:管理站点中的角色和用户、管理文档库的权限授权。

另:我的那本《SPS2003开发指南》已经基本定由电子工业出版社出版,我的交稿时间会争取在春节之前,也就是约三个月后。没办法,工作比较忙,我又比较懒,辜负大家的期望了。大家觉得定价多少比较合适呢?:)

一、操作站点角色

 

核心类:

SPUser:表示一个站点用户(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPUser.asp?frame=true

SPUserCollection:表示包含多个用户的集合(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPUserCollection.asp?frame=true

SPRole:表示一个角色对象(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPRole.asp?frame=true

SPRoleCollection:表示包含多个角色的集合(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPRoleCollection.asp?frame=true

 

SPWeb(表示一个站点)包含一个Roles属性(SPRoleCollection类型),表示站点中所有的角色。SPRole包含一个Users属性(SPUserCollection类型),表示角色中所包含的所有用户。SPUser包含一个Roles属性(SPRoleCollection属性),表示用户所从属于的所有角色。

 

SPRoleAdd()方法用于将某用户加入到自身这个角色中。RemoveUser()方法用于将某用户排除出自身这个角色。更改一个角色的信息后,调用Update()方法更新回数据源。

 

下面代码示例遍历当前站点下所有的角色,然后遍历每个角色中的所有用户。由于每个用户可从属于多个角色,所以输出的用户信息会有重复。

 

foreach(SPRole role in SPControl.GetContextWeb(HttpContext.Current).Roles)

{

      Response.Write(“角色” + role.Name + “包含成员:”);

      foreach(SPUser user in role.Users)

{

Response.Write(user.Name + “;”);
}

      Response.Write(“<br>”);

}

 

二、操作文档库权限

 

核心类:

SPList:表示一个列表,文档库也是一个列表。(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPList.asp?frame=true

SPPermission:表示一项授权(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPPermission.asp?frame=true

SPPermissionCollection:表示包含多项授权的一个集合(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPPermissionCollection.asp?frame=true

SPRights:用来表示权限的枚举(http://msdn.microsoft.com/library/en-us/spptsdk/html/tsenSPRights.asp?frame=true

 

SPList有一个Permissions属性(SPPermissionCollection类型),表示这个列表上所有的授权。每个SPPermission对应为一个被授权成员(可以是一个角色或一个用户)与某些权限。SPPermissionMember属性(SPMember类型,是SPUserSPRole的父类)对应此项授权的被授权成员,PermissionMask属性(SPRights类型)对应此项授权的权限。

 

SPPermissionCollectionAdd()方法用来增加一项授权,Remove()方法用来删除一项授权。

 

下面的代码示例遍历站点中的所有文档库,并查看用户“kaneboy”在每个文档库上有哪些权限,如果用户在某文档库上没有任何权限,则增加一项能查看文档库中文档的权限。

 

SPWeb web = SPControl.GetContextWeb(HttpContext.Current);

SPUser user = web.Users[“kaneboy”];

SPListCollection lists = web.GetListsOfType(SPBaseType.DocumentLibrary);

foreach(SPList list in lists)

{

      Boolean bIncludeMember = false;

      foreach(SPPermission perm in list.Permissions)

{

      if (perm.Member.ID == user.ID)

{

      bIncludeMember = true;

Response.Write(“在文档库” + list.Title + “上,用户” + user.Name + “的权限是:” + perm.PermissionMask.ToString() + “<br>”);
}

}

if (! bIncludeMember)

{

      list.Permissions.Add(user, SPRights. ViewListItems);

}

}

打印 | 张贴于 2004-11-17 15:31:00 | Tag:SharePoint

留言反馈

#回复: 操作SharePoint Object Model完成两项操作的文档 编辑
如何修改文档库中文档的属性,例如文档名称或者标题
2007-10-22 18:03:00 | [匿名用户:Bentley]
#回复: 操作SharePoint Object Model完成两项操作的文档 编辑
出现上面错误的原因,应该是站点信任等级太低。请尝试修改web.config中指定的信任等级。

-------------------------------------------------

kaneboy可否解释一下为什么装WSS/SPS之前没有问题,装了之后才出现这样的问题呢?WSS/SPS在什么地方做了限制?如果可以的话,请解释一下细节信息。谢谢!
2007-01-26 22:11:00 | [匿名用户:zzz]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
显示的错误信息是:
Attempt to access the method failed
2006-10-23 10:16:00 | [匿名用户:eric]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
我的安装环境,windows 2003 EN, SPS Cn + SP2, SQL 2000 En, 安装了您的FlowLite后,只有删除流程,能够看到流程动作设置,其他的都不行,请教,这是不是和我的安装环境有关?

2006-10-23 10:15:00 | [匿名用户:eric]
#SharePoint技术资料 编辑
Ping Back来自:blog.csdn.net
2005-10-12 17:07:00 | [匿名用户:_Fireworld]
#re:操作SharePoint Object Model完成两项操作的文档 编辑
^_~,pretty good!18showsseeoo
2005-04-25 20:31:00 | [匿名用户:水分测定仪]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
请问如果想将文档库下面的文件细分权限可以做到么,谢谢!
2005-04-16 09:44:00 | [匿名用户:lan]
#re:操作SharePoint Object Model完成两项操作的文档 编辑
^_^,Pretty Good!
2005-04-10 19:38:00 | [匿名用户:湿度测控仪]
#SharePointServer资料 编辑
了解SharePoint   SharePoint Portal Server软件概述   介绍一下SharePoint   实现SharePoint的无限潜力...
2005-03-26 23:09:00 | [匿名用户:muke]
#安装flowlite时报的一个问题 编辑
========= WPPackager install log started 2005-2-27 22:16:29 =========
2005-2-27 22:16:31: Error: Error message: '未找到指定的服务器实例。请指定服务器地址和端口。' while installing Web Part package.
2005-2-27 22:16:31: Critical Error: Error while installing 'FlowLite' to server.

但服务器方面虚拟站点正常,请教一下可能是什么问题,感谢。
2005-02-27 22:54:00 | [匿名用户:timevary]
#Sharepoint Portal Server 2003相关资料 编辑
Ping Back来自:blog.csdn.net
2004-11-21 12:13:00 | [匿名用户:zhumkcn]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
我用了最新版时在设置菜单标题时不能保存,在选择一种操作时提示在应用这个方法时发生错误。
2004-11-19 11:51:00 | [匿名用户:david]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
我想问一下,如何在自己的WebPart使用SharePoint里面的选人控件UserPicker?
2004-11-19 09:24:00 | [匿名用户:djshow]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
这类书太少了,不知道头版发行量多少?可以预定吗?定价控制在50块以内最好。希望书的印刷质量不会太差。还有书的后面能附一些开发需要用到技术方面的相关参考书籍。书里面的例子最好有光盘附送。
2004-11-19 00:58:00 | [匿名用户:fw]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
文档流转定义部件的属性设置可否调用内置属性,比如‘修改者’@user等...
2004-11-18 17:01:00 | [匿名用户:mzc]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
出现上面错误的原因,应该是站点信任等级太低。请尝试修改web.config中指定的信任等级。
2004-11-18 15:23:00 | [匿名用户:kaneboy]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
我在装有中文sps2003的机器上使用正常,但是在一台装有英文wss和英文project server2003的机器上,添加webpart没有问题,但是在“选择一种流程动作”是出现了下面的错误,和楼上类似:
Request for the permission of type System.Security.Permissions.FileIOPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 failed.
at System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet grantedSet, PermissionSet deniedSet, CodeAccessPermission demand, PermissionToken permToken) at System.Security.CodeAccessSecurityEngine.Check(PermissionToken permToken, CodeAccessPermission demand, StackCrawlMark& stackMark, Int32 checkFrames, Int32 unrestrictedOverride) at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) at System.Security.CodeAccessPermission.Demand() at System.Web.HttpRequest.MapPath(String virtualPath, String baseVirtualDir, Boolean allowCrossAppMapping) at System.Web.HttpServerUtility.MapPath(String path) at Kaneboy.SharePoint.WebPartPages.FlowLite.FlowActionLoader.GetAllTypeNames() at Kaneboy.SharePoint.WebPartPages.FlowLite.ActionSelectToolPart.CreateHtmlSelect() at Kaneboy.SharePoint.WebPartPages.FlowLite.ActionSelectToolPart.RenderToolPart(HtmlTextWriter output)
2004-11-18 15:08:00 | [匿名用户:zby]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
我们都期待着早点看到你的书呢。希望能有一些更改模板的例子在书上,让我们把一成不变的SPS界面也变得更个性化一点。如果能有七十页以上的话。对于一般的读者来说我觉得这类偏门一点的书在五十块以内都是可以接受的。
2004-11-18 12:49:00 | [匿名用户:david]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
期待您的大作,现在市面上很难找到相关书籍,不知会以哪方面的东西为重点?
2004-11-18 12:13:00 | [匿名用户:draclosta]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
文档流转定义部件安装后在执行"选择一种流程动作"出现下面的错误提示:
请求 System.Security.Permissions.FileIOPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 类型的权限已失败。
at System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet grantedSet, PermissionSet deniedSet, CodeAccessPermission demand, PermissionToken permToken) at System.Security.CodeAccessSecurityEngine.Check(PermissionToken permToken, CodeAccessPermission demand, StackCrawlMark& stackMark, Int32 checkFrames, Int32 unrestrictedOverride) at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) at System.Security.CodeAccessPermission.Demand() at System.Web.HttpRequest.MapPath(String virtualPath, String baseVirtualDir, Boolean allowCrossAppMapping) at System.Web.HttpServerUtility.MapPath(String path) at Kaneboy.SharePoint.WebPartPages.FlowLite.FlowActionLoader.GetAllTypeNames() at Kaneboy.SharePoint.WebPartPages.FlowLite.ActionSelectToolPart.CreateHtmlSelect() at Kaneboy.SharePoint.WebPartPages.FlowLite.ActionSelectToolPart.RenderToolPart(HtmlTextWriter output)
2004-11-17 22:37:00 | [匿名用户:mzc]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
初学者问一个简单的问题,SharePoint是什么东西?做什么用的?是不是只能在Window2003上面装。别见笑!
2004-11-17 16:55:00 | [匿名用户:hjf1223]
#re: 操作SharePoint Object Model完成两项操作的文档 编辑
workflowe用不了呀。
2004-11-17 16:17:00 | [匿名用户:david]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.1.8