很多种不同的场景下,会需要得到当前的用户信息,例如需要根据当前用户判断组,进而控制权限。首先InfoPath提供了一个userName方法,来实现这个目的,不过这个方法的问题是只能获得不包含域名的用户名,例如,一个contoso\danj的用户,这个方法返回的是danj。对于只有一个域的场景,可以使用concat方法来拼凑出完整的用户名,例如:concat("contoso\", userName... Read More
posted @ 2013-10-18 12:00 Lambert Qin Views(1463) Comments(0) Diggs(1) Edit
这是这个系列的第一篇,介绍一个小工具,主要是用在Web Service测试的。因为为了用一点高级的东西,就免不了和web service打交道。你可以使用按照KB819267来修改web.config实现。这个默认的确实有点弱,而且还需要一个SharePoint Server。显然有个工具更加方便。微软的一个员工发布了一个小工具:WebServiceStudio,https://webservicestudio.codeplex.com/。名字很大气,却很小巧,很好用。上图是一个调用GetCurrentUserInfo的示例。下面一篇文章就会介绍这个Web Service方法。 Stay Tu Read More
posted @ 2013-10-16 18:31 Lambert Qin Views(855) Comments(0) Diggs(0) Edit
首先,这个软件可以从这里下载: Remote Desktop Connection Manager同类型的软件还有很多,我没有很多复杂功能的要求,就选择了这款微软官方的,虽然很久都没有更新过了。为什么不用系统自带的远程桌面客户端?很简单,如果你像我一样,有20多台机器需要管理,有一个统一的软件会方便很多。不过机器一多,原来不是问题的问题也就变成了问题,在Win7以后的操作系统,微软估计改变了安全设置,即使你选择了记住密码,下次重新打开然不断的弹出来要求验证。为了解决这个问题:需要对组策略做一点手脚:使用命令GPEdit.msc打开 组策略编辑器。进入Local Computer Policy Read More
posted @ 2013-09-17 11:18 Lambert Qin Views(1523) Comments(3) Diggs(0) Edit
开发慢慢向着SharePoint 2013迁移,环境也开始慢慢准备起来了。由于FAST Search的集成,和缓存服务的加入,SharePoint 2013对开发机器要求的不是一般的高。这里介绍一下如何降低这个需求,分配4G内存给虚拟的情况下,基本可以完成正常开发。 尽量减少启动服务和应用程序池数量。 一般开发,并不需要所有SharePoint服务,尽量按需启用。 Plan service deployment in SharePoint 2013,这个文档清楚的说明了每个服务的作用。 例如下面将会介绍的,分布式缓存和搜索服务,如果你暂时用不到,就不要启用。 安装的时候,尽量合并所有的服务,使 Read More
posted @ 2013-09-03 16:42 Lambert Qin Views(3688) Comments(7) Diggs(0) Edit
SharePoint Solution Deployer,绝对属于必备的SharePoint工具之一了。下载,解压这个工具,会有如下的目录(没有Assemblies和DeployGAC.bat)解压出来。对于本地部署,什么设置都不用改变,只需要复制wsp到Solutions文件夹就可以使用,基本上帮你考虑到了所有的情况。对于高级的场景,可以下载文档和配置工具http://spsd.codeplex.com/releases/view/100340我这里增加了一个Assemblies文件夹和DeployGAC.bat是因为我有些第三方的dll需要提前部署,利用wsp注册经常注册不成功,给开发带来 Read More
posted @ 2013-08-05 16:23 Lambert Qin Views(929) Comments(1) Diggs(0) Edit
一张好的皮肤显然的会给你的项目加分不少。特别是大部分的项目,UI甚至可以决定成败。SharePoint在这方面一直都做得不好,曾经我有好多项目都是坐在美工旁边来一起修改样式。痛苦的经历。不久以前,终于有大牛们开始愿意向这个方向迈出一步了。这里是这个开源项目的地址:Responsive SharePoint,如果有需要可以试用。 如果不明白什么是响应式UI,可以参考下Bootstrap,或者其中一个中文翻译版本。 我的Office 365测试站点使用了这个模板页进行了少量修改,也还在修改中。 Read More
posted @ 2013-06-24 12:53 Lambert Qin Views(921) Comments(0) Diggs(0) Edit
今天碰到一个有意思的问题,就顺便借用了这里的一段示例代码,稍作修改,导出个不同地区,文化下的时间格式。 class Program { static void Main(string[] args) { List<string> list = new List<string>(); foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures)) { string spe... Read More
posted @ 2013-05-27 11:59 Lambert Qin Views(1755) Comments(0) Diggs(0) Edit
User Profile Service(以下简称UPS)可能是SharePoint 2010中最头疼的服务之一了,问题多多。在创建这个服务阶段会产生一系列问题。还好大神Spencer Harbar发表了一系列的博文来解决这个问题。精华都在Rational Guide to implementing SharePoint Server 2010 User Profile Synchronization。只要照着这个弄,没有解决不了的。问题是对于一个服务器场存在不是一天两天的事情,这个服务太脆弱了,经常莫名其妙的挂。如果UPS服务挂了,所有访问User Profile Manager的代码都会异 Read More
posted @ 2013-04-13 20:30 Lambert Qin Views(7857) Comments(1) Diggs(0) Edit
用户信息列表(User Information List),这个隐藏的SharePoint列表,主要用来储存一些用户Profile的基本数据。这个列表不能使用普通的方式去添加或者删除数据。首先,为什么要在这个列表中增加数据?这个列表是由SharePoint进行管理的,在使用PeoplePicker控件的时候,点时候就会自动把用户添加进用户信息列表。对于列表中的用户类型的字段来说,这个会利用ID关联到用户信息列表。我碰到过2个典型场景:实际用户操作中,对于批量数据导入的时候,一般使用的是Datasheet View,通过Excel导入。如果张三从来没有访问过网站,导入的时候有张三这个人,这个时候 Read More
posted @ 2013-03-28 22:28 Lambert Qin Views(1966) Comments(1) Diggs(2) Edit
接着上一篇Query Options的一些用法(4):UTC时间处理,这一篇也是介绍一下日历中关于重复发生事件(Recurrence)的查询。首先,建立测试数据,一个每周重复发生的事件,一个普通的事件。这个测试中,增加了一个特殊的ViewField,fRecurrence,用来判断当前事件是否是重复发生的。static XmlNode ViewFields { get { XmlElement viewFields = _camlDoc.CreateElement("ViewFields"); System.Text.StringBuilder viewFieldsSB = Read More
posted @ 2012-12-20 17:57 Lambert Qin Views(1505) Comments(1) Diggs(0) Edit