SharePoint 2010 User Profile Service的逻辑结构如下图:

1)在服务器场中可以创建多个User Profile Service Application实例。
2)一个User Profile Service Application实例仅可以关联一套User Profile同步服务(也就是说如果我们在单服务器的情况下创建了多个User Profile Service Application实例,只有一个能使用同步服务)。
3)每套User Profile同步服务由两个Windows服务组成,负责管理同步连接和属性映射。

4)如果你遇见了类似“Unable to process Put message”这样的错误,或者没法编辑同步连接和属性映射的情况,一种可以尝试的方法是:放着已有的User Profile Service Application实例不动,创建一个新的User Profile Service Application实例,与同步服务关联,然后设置同步,并成功同步一次后,把新建的实例删除,再把原来的实例与同步服务关联,多半可以解决问题。
5)同一个Web应用程序可以关联多个User Profile Service Application实例,但是只有设置为默认关联的实例才会被使用,并且为People Search所用。
参考:
1)Rational Guide to implementing SharePoint Server 2010 User Profile Synchronization
2)http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/03/29/how-to-set-up-people-search-in-sharepoint-2010.aspx
3)http://blogs.msdn.com/b/russmax/archive/2010/01/20/sharepoint-2010-shared-service-architecture-part-1.aspx
MOSS中对工作流的强大支持,让我们可以做很多应用。
举个例子,我们可以用表单库做审批表单,然后给这个表单库附加一个流程。
我们可能希望用户在填写表单的时候,在表单中填一些在启动工作流时需要用的信息,比如设置审批人等等。
我们的表单会像下面这样,包括待审批内容,和设置审批者等其他工作流设置。
我们也希望用户在点“保存”的时候,提交表单并同时根据用户设置的审批人来启动工作流。
(
MOSS默认的模式是,提交完表单以后,在另一个页面启动工作流,需要做两步操作,这样的用户体验比较不好
最好的体检就是“一步到位”,只需要在一个界面完成提交和启动的工作。
)
所以,我们就需要在InfoPath Form Services表单中的“保存”按钮上做一些工作来满足这种需求。
我提供的思路如下:
利用VSTA给表单库的表单模板里的“保存”按钮添加代码来完成提交表单和启动工作流的任务
1)设计表单模板的时候,为InfoPath表单设置一个提交连接(DataConnection)
可以看到这个提交连接会包括提交到的文档库的URl和默认的文件名命名规则。这个提交连接是我们提交表单和启动工作流所需要的。
2)给InfoPath表单的“保存”的按钮添加代码(以下代码为示例):
XPathNavigator field2 = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:field2", NamespaceManager);
//取到提交连接的对象,FileSubmitConnection对应的是提交到SharePoint文档库的连接类
FileSubmitConnection osssubmit = (FileSubmitConnection)this.DataConnections["OSSSubmit"];
//我们可以通过表单里面的某个项目来作为表单提交的时候的文件名,或者用其他的命名规则,或者用户指定都可以
string tempfilename = field2.Value +"_"+ DateTime.Now.ToString().Replace(":","_");
//设置提交表单的文件名
osssubmit.Filename.SetStringValue(tempfilename+".xml");
//执行提交
osssubmit.Execute();
//到这一步,表单已经提交到了文档库,接下来启动表单的工作流
try
{
//根据提交连接的FolderUrl属性可以取到文档库所在的网站集
SPSite mysite = new SPSite(osssubmit.FolderUrl);
//根据表单的名称和FolderUrl可以把提交上去的表单的完整URL拼出来
string fileurl = osssubmit.FolderUrl+"/"+tempfilename+".xml";
if(osssubmit.FolderUrl.EndsWith("/"))
{
fileurl = osssubmit.FolderUrl+tempfilename+".xml";
}
//利用FolderUrl可以根据SPWeb.GetList方法取到文档库对应的SPList对象
SPList mylist = mysite.RootWeb.GetList(osssubmit.FolderUrl);
//根据前面拼出来的已上传得表单的完整URL可以取到表单对应的SPListItem对象
SPListItem mylistitem = mysite.RootWeb.GetListItem(fileurl);
//取到文档库绑定的某个工作流关联
SPWorkflowAssociation mywfass = mylist.WorkflowAssociations.GetAssociationByName("Review", System.Globalization.CultureInfo.CurrentCulture);
//EventData中就是工作流启动的时候需要的参数,比如审批人等信息,用表单中用户设置的启动参数替换EventData中的相应信息即可
/*关联信息定义了工作流启动的参数,格式如下XML所示,我们需要做的只是用表单里面的对应字段值替换这个XML里面的对应内容即可,红色标示的部分
<my:myFields xml:lang=\"zh-CN\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:my=\"http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-12-16T05:28:36\" xmlns:xd=\"http://schemas.microsoft.com/office/infopath/2003\">
<my:instructions>Review it!</my:instructions>
<my:assignees>litwareinc\\Administrator;litwareinc\\DemoUser2</my:assignees>
</my:myFields>
*/
string EventData = mywfass.AssociationData;
mysite.AllowUnsafeUpdates = true;
mysite.RootWeb.AllowUnsafeUpdates = true;
//根据设定的信息,启动工作流
mysite.WorkflowManager.StartWorkflow(mylistitem, mywfass, EventData);
}
catch{ }
在企业中,对文档的保护最好是希望能跟着文档的生命周期,从文档创建到文档被下载被离线查看所有的环节都受到保护。
WSS V2中我们对文档库的权限控制只能做到控制文档在下载前,但是当文档被下载以后文档就“自由”了。
在WSS V3中,我们可以设置文档库在文档下载的时候给它附加上离线的权限,权限跟随文档。
一、在WSS V3的IRM框架中包含了四个基本组成部分:
1)IRM Protector:保护程序
2)Windows SharePoint Services:
3)Right Management Services:权限管理平台(RMS)
4)Client Application:用来打开受保护文档的客户端程序,对于通过RMS保护的Office文档来说客户端就是Office程序。
WSS V3中的IRM是对下载文档做加密,上传回来的时候做解密。所以在WSS文档库中的文档都是非加密状态。
这样做我个人感觉一个方面应该是为文档内容索引服务的。
二、Protector 在WSS V3中对文档的IRM保护是通过Protector来实现的,Protector是服务器场级别的,必须在每个Web前端注册。Protector包括两种:
1)集成的Protector(integrated protectors):这种Protector需要RMS,和RMS的交互都有WSS来完成
2)独立的Protector(autonomous protectors):这种Protector需要独立的注册,这种保护程序可以是不需要RMS的支持
三、IRM权限 WSS V3的文档下载以后附加的权限跟用户在WSS中的ACL(访问控制权限列表)对应的:
1)WSS本身是文档的所有者
2)不同ACL对应不同的权限(ACL和IRM权限对应关系是可扩充细分的):
管理网站:对文档有完全控制的权限,下载后可以管理文档权限
编辑列表,管理列表和自定义页面:编辑,拷贝,保存
查看列表:只读权限
四、发布证书 WSS V3给文档加IRM之前会为文档先生称发布证书(IL)然后在把工作交给Protector,IL包括什么内容:
1)文档的密钥,用来加密文档的内容
2)添加文档的用户列表和用户对文档的权限,WSS会把自己和下载用户加入列表中
3)文档库的GUID(所以在哪个文档库下载的文档,如果上传到另一个起了IRM的文档库是上传不上去的,当然上传到没有启IRM的文档库是可以的)
五、如何启用IRM 要让WSS的文档库可以对文档起IRM保护,需要:
1)安装了RMS Server SP2
2)启用WSS的IRM功能

2)如果有要使用独立的Protector,需要进行注册
3)需要设置文档库的“信息权限管理”

注:当设置了“不允许用户上载不支持IRM的文档”的时候不能被加权限的文档类型不能上传(已经用客户端程序加密过的文档也不能被上传了)
具体的步骤微软有一个官方的文档:Deploying Windows Rights Management Services with Microsoft Office SharePoint Server 2007 Step-By-Step Guide
预告:[ECM IRM RMS - 2]WSS V3中的IRM如何对文档上传下载的权限进行控制
摘要: 谁说MOSS的性能是个大问题呢!世界上第5大日访问量最多的网站就整合了Microsoft Office SharePoint Server技术!在它的“About our new home page”中,有这么一段话:In the background we are beginning to migrate much of Microsoft.com to a new pl...
阅读全文
摘要: 用SharePoint Designer开发工作流的示例视频Kanyboy已经发布了一套,共4辑,讲得很清楚!在上周六结束的OTEC聚会上,把从空白工程开始开发WSS V3工作流的Demo录制了视频Demo中做了如何实现多步Document Review的审批流程,演示了一般的工作流开发步骤。视频下载请到OTEC论坛:http://www.msotec.net/Forums/ShowThread....
阅读全文
摘要: Microsoft Windows Rights Management Services with Service Pack 2 (RMS SP2) is AvailableRMS Server SP2 :http://www.microsoft.com/downloads/details.aspx?familyid=8EF6D80A-6A9C-4FB9-AB51-790980816FFE&...
阅读全文
摘要: 在开始之前,先讲个故事。马力是公司的一个销售人员,在他完成他的销售任务的同时,差旅费用如果控制在8000以下说明他的这个方面表现很好,如果是超过了8000,低于15000的情况下他就要受到警告了,如果超过15000,他的问题就大了。作为部门主管,我需要有一个最明显的方式来展现这些东西。在MOSS中就有一种列表类型叫做KPI(关键绩效指标)列表,KPI列表有一个评判指标的标准来判断当前的指数的优劣,...
阅读全文
摘要: 如果你只想试用一下Excel Services,你只想看看Excel Services发布的Excel工作簿是什么样。你暂时用不着外部数据,自定义函数等功能的话,跟我来,3步让你完成Excel Services的配置和使用。1)给服务器场启用Excel Calculation Services2)设置可信任的位置3)发布Excel工作簿发布出来的Excel工作簿如下:
阅读全文