Tag Archives: SharePoint 2013

How to disable SharePoint People Picker suggestion cache

Recently, I run across strange issue with People Picker in SharePoint 2013. Our customer who uses Windows classic mode authentication, reported, that after saving the item by clicking on Save in standard NewForm or EditForm, the value specified in User Field is different from the value that they provided in People Picker.

They filled out the user field with the value X, and it was saved with different user Y.

Symptoms:

After saving the standard item form, the item is saved with different user than previously specified in the form.

Applies to:

SharePoint 2013 – Classic Windows Authenticaton mode

Explanation:

By default users resolved through PeoplePicker are stored in LocalStorage (window.localStorage), so next time it doesn’t have to load user details from SharePoint.
However in Windows classic mode it stores SPUserId which is then used when saving value to SPUserField. This causes the problem when the same user reside in 2 site collections and has different IDs.
So basically it works only in the first site collection where the user was resolved. In any other site collections it resolves fine, but SharePoint then uses SPUserId from the local storage, which is the ID from the first collections and completely different value is stored in the field.

Solution:

There is couple solutions for this:

  1. Switch to Claims based authentication
  2. Disable local storage for ClientPeoplePicker (and be aware of the consequences) by setting roperty UseLocalSuggestionCache on the ClientPeoplePicker. This can be done by inserting following javascript into masterpage (directly if you have custom masterpage or through delegate control)

    Please consider the consequences. Local Storage is there for a reason. Evaluate in your farm if disabling local storage for client people picker does not considerably degrade the performance.
  3. There is a way how to just clear the cache used for People Picker (instead of completely disabling it)

 

SSRS 2014 Add-In installation in SharePoint 2013

Issue

Installing SQL Server 2014 Reporting Services Add-In to SharePoint 2013 fails and log contains following:

This error occurs either by installing from SQL Server 2014 installation or from rsSharepoint.msi, which is  downloadable from MSDN.

Cause

Installation package failed to change web.config file of one or more Sharepoint web applications.

Resolution

Use two step installation to troubleshoot the issues: (MSDN article here)

and then:

The command will try to register Reporting Service configuration in web.config files. If you have more than one web application, it’s necessary to find which web application causes the problem. I managed it by looking for:

This section (among other elements) is added to web.config when installation of SSRS completes succesfully. If it missing in the web application’s web.config , then there is probably something, which bothers the installation (even though the web application runs without any problem in the browser).

In my case it was a comment between two elements (which doesn’t bother SharePoint but bothers SSRS installation).

 

How to force browsers to get latest script files on ASP.NET pages in automated way

I was looking for a nice way how to force browsers to refresh its cached version of files and reload script files after the change occured.

Usually we link JS files or CSS files like this:

If you want to force refresh, you can amend parameters to url, ie.

Well, this is manual way, so how do it in automated way, so I do not have to care about it? There is several ways how to do it, I will just mention one, which is simple and reliable and you do not have to remember to increase anything upon deployment. (it’s not my idea, thanks to Adam Tegen and his answer in stackoverflow). I took the liberty to change it so it’s possible to use in ASP.NET webforms as well.

 

In ASP.NET page link the file as:

 

ESPC14 and my summary

European SharePoint Conference 2014  (#espc14) held in Barcelona was my first to attend and it was just amazing. I am grateful that I could be there and to be a part of the SharePoint community. It’s wonderful experience and chance to hear and see upfront what’s going on in SharePoint and what are the Microsoft plans.

This article tended to be only for my collegues and friends, but then I realized it’s general enough and it could be useful for others as well. I hope that this will enrich others and will give others some ideas what was presented and what I find interesting.

ESPC was happening 2 month after the main SharePoint conference in Las Vegas. European event is smaller, which I guess is not a bad thing. Mostly I regretted that I cannot split myself to be able to attend multiple presentation (I cannot imagine what I would feel in SPC).

For Czech readers, there are nice articles from Jana Babáčková

If you are interested in some numbers and comparison:

  • number of attendees: 10000 (SPC), 1400 (ESPC)
  • countries attendees were from: 85 (SPC), 45 (ESPC)
  • number of presentations: 230+ (SPC), 100 (ESPC)

(these are not official and exact numbers)

Well, now to the presentations. This list is what I found most interesting for developers. Also, it’s a list I would easily recommend to others to read through or watch. I was inspired by similar post by Jeremy Thake about SPC, which you can find here.

If it exists, I attach link to live video to SPC conference with same/similar presentation (SPC presentations were recorded, ESPC’s nope).

1. Keynote: Now We Know, Now We Don’t (Dan Holme)

  • video from SPC14 here.

2. Understanding the Five Layers of SharePoint Security (Michael Noel)

3. Optimizing SQL Server for Speedy SharePoint (Sahil Malik)

4. Think You Can Hack SharePoint? (Liam Cleary)

5. The Ultimate SharePoint Infrastructure Best Practices Session (Michael Noel)

6. ALM for Developing Apps and Sandboxed Solutions Targeting Office 365 (Jeremy Thake)

7. Using JavaScript Templates To Customise the SharePoint 2013 User Interface (Chris O’Brien)

8. Transitioning Your SharePoint Solution Model Skills to the New SharePoint App Model (Jeremy Thake)