SharePoint技巧

SharePoint 2013 一些小技巧
一、添加“SharePoint 2013 切换用户”标签 相比SharePoint 2010,SharePoint2013版本去掉了切换用户登陆的功能(如下图),其实这个可以通过改welcome.ascx控件来显示出来; 修改文件的位置,如下图: 文件位置 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES welcome.ascx截图 可能报错,这是因为添加的节点不符合标准,我这里是因为节点之间缺少必要的空格:

SharePoint 中的SQL Server 安全 知识教程
使用SharePoint很长时间以来,都认为Sql只需要最初始的配置,即不再需要管理和维护;而事实上,Sql的管理和安全,都是和SharePoint环境的稳定性息息相关的,所以,要绝对重视SharePoint中Sql Server的管理和维护。 本文主要介绍的有以下三点: 一、关于Sql账号的权限; 二、关于Sql Server的磁盘管理 三、关于Sql Server服务端口的修改 一、关于Sql账号的权限 首先,要说的就是关于账号的问题,无论是SharePoint服务器场配置账号,还是各种服务的账号,都是需要对于Sql的权限的。以前为了方便,也并没有给予更甚的研究,都是直接赋予所有权限。其实,SharePoint对于Sql Server的权限仅仅需要dbcreator和securityadmin权限即可。

SharePoint 中关于event receivers的讨论及实例教程
主要就是关于事件触发器的同步/异步的设置以及作用。 其实接触SharePoint颇久,对于事件触发器写的不多,但是同步/异步这个概念还是了解的,不过没有深究罢了。今天,和大家讨论了一下,也更加深刻的理解了这个概念;当然,有人说异步是单开一个线程操作,这个我不了解,但是不反对,因为无论如何,不是执行完毕操作立即执行事件,这就是异步了,我们不讨论内部机制是如何开辟线程,或者组织异步队列的。 SharePoint中事件触发器,关于before事件(就是ing标志的事件),默认都是同步的,我理解就是完成一个操作之前,马上执行这个事件;而after的事件(就是ed标志的事件),默认都是异步的,也就是完成一个操作,不是立刻马上执行事件。至于为什么ed结尾的事件都是异步的呢?因为SharePoint为了方式UI上的操作和触发的事件冲突,所以把它设置为异步,至于内部如何处理异步,我觉得没必要太抠细节了。 关于before事件,就是完成操作之前触发,这个只能是同步,SharePoint不允许定义为异步;而after事件呢?就是完成操作之后触发,默认异步,但是可以设置为同步,但是设置为同步以后,就不能再更新属性了,防止和UI操作的冲突。 举个简单的例子,上传一个文档,然后都OK了弹出了上传以后的标题,然后UI会弹出修改属性的页面,这时,时间触发器同步修改了标题,但是却没有被属性页面加载出来,所以这时修改属性,会造成保存上的冲突。当然,有人说执行完事件以后,再弹出UI修改属性的页面,这样如果事件需要时间,就会造成效率上的问题。 当然例子比较简单,就是给大家理解加一个参考罢了。也许自己的理解并不够深刻,希望有独特见解的,大家能够留言讨论。 简单介绍下,after事件如何设置同步,在属性的xml文件里,设置即可,如下: 复制代码 <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Receivers ListUrl="ListName"> <Receiver> <Name>EventReceiver1ItemAdded</Name> <Type>ItemAdded</Type> <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly> <Class>EventReceiverProject1.EventReceiver1.EventReceiver1</Class> <SequenceNumber>1000</SequenceNumber> <Synchronization>Synchronous</Synchronization> </Receiver> </Receivers> </Elements>