Search This Blog

Sunday, March 26, 2017

Disable mobile view redirection in SharePoint 2010

When SharePoint 2010 site is accessed in mobile devices, it shows stripped down version of the site with limited features for mobile devices. SharePoint redirects to a special page responsible for rendering the mobile view. This may be helpful if you want to keep minimalist approach for mobile devices.

However; most of the time you  want to disable this behavior as the design itself may be responsive thus not requiring the mobile view redirection.

There are 3 options available to do this:

Disable MobilityRedirect Feature in SharePoint using power shell. 

Disable-SPFeature -Identity MobilityRedirect -Url http://yoursite

It appeared to be the best option, without requiring you to change the lines in Web.Config. But it did not work for me.

Change compat.browser

Navigate to "C:\inetpub\wwwroot\wss\VirtualDirectories\[port-of-your-site]\App_Browsers\compat.browser" and change "isMobileDevice" property to false for each user agent present.

This is the least preferred option for me as it requires to change values at multiple places and this may get overwritten with new patches.

Change web.config file of the web application

Open the web.config file for the web application and navigate to the "". 
Add the following lines of code:

<browserCaps>
<result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<filter>isMobileDevice=false</filter>
</browserCaps>

I feel this is the most fail safe way. This does not have risk of values being overwritten due to new patches to the server.

More information on this can also be found at perficient blog

Sunday, March 12, 2017

SharePoint Server 2016 Resources

Microsoft TechNet link for SharePoint 2016 Resources for IT Pros.

https://technet.microsoft.com/en-us/library/cc303422(v=office.16).aspx

There are lots technical resource for SharePoint 2016 related to Architecture, Planning, Implementation and lots more.

Friday, March 10, 2017

Add and Customize Pages Permission Denied to Site Collection Administrator

In SharePoint online, you may come across strange access denied issue working with SharePoint Designer, Master pages, style libraries and Page Layout not just for users with Designer, Full Control access but even for Site Collection Administrator.

On verifying the permission of the user, you will see explicit Deny permission for "Add and Customize Pages" is applied. See the following screenshot for the Deny permission.


The Deny permission cannot be removed using the standard permission management procedure in SharePoint.

Also, you will find this issue with the root site collection in SharePoint online.

To get rid of the issue, perform the steps outline by Microsoft in the article - Turn scripting capabilities on or off

The scripting needs to be allowed SharePoint Admin Center and if you need it on immediate basis you must use power shell command.

NOTE: If you miss to enable scripting in SharePoint Admin Center, the change performed by the power shell command will be reverted after 24 hours.

Allow Custom Script in SharePoint Admin Center

1. Go to SharePoint Admin Center

2. Select Settings
3. Under Custom Scripts sections, you will see option to Allow / Disallow custom script on persoanl sites and Self-Service sites

4. To get rid of the permission issue permanently, you need to select following options:
  1. Allow users to run custom script on personal sites
  2. Allow users to run custom script on self-service created sites
The changes done will require up to 24 hours to get reflected. To make the change immediately you must use the power shell command. Also, as described by Microsoft, change the custom script setting will affect the root site collection. If you need to apply this change to another site collection, you must use the same power shell command to perform the change to different site collection. 

Power Shell Command to remove Deny Permission
2. Enter the following line, replace the Site URL with your site collection URL and press enter.

Set-SPOsite "SiteURL" -DenyAddAndCustomizePages 0





Monday, January 9, 2017

The Future of SharePoint

Although posted by Microsoft half a year back but it is worth reading. Most of the things are already rolled out.

The Future of SharePoint - https://blogs.office.com/2016/05/04/the-future-of-sharepoint/

Saturday, May 14, 2016

SharePoint Solution stuck on deploying, retracting and many other related issues

I recently came across very strange and frustrating issue related to timer job. The timer job is responsible for majority of scheduled task within SharePoint. Any solution which is deployed also get scheduled to be deployed across farm with the help of timer job.

The issue started after updating the SharePoint 2010 farm with Service Pack 1. Any deployment or retraction action cannot complete thereafter. If you are deploying a solution the status will forever remain as deploying. Same is the case with retracting and any other timer dependent activity.

I did all troubleshooting as suggested in various forums:
  1. Cleared SharePoint cache
  2.  Performed all suggestion on these blog posts:
    1. SharePoint 2010 Troubleshooting: Solution deployment stuck on deploying
    2. SharePoint 2010: Solution Package Deployment stuck in Deploying status
    3. http://blog.degree.no/2012/08/sharepoint-2010-solution-stuck-retracting-deploying/
However; the problem still persisted. 

Later, I got a solution from MSDN blog by Tehnoon Raza - SharePoint Server 2010: Timer Jobs not Functioning After Applying Updates. I ran the powershell script and all problems were fixed. I have mentioned the powershell script for easy reference:

$farm  = Get-SPFarm 
$disabledTimers = $farm.TimerService.Instances | where {$_.Status -ne "Online"} 
if ($disabledTimers -ne $null) 

    foreach ($timer in $disabledTimers) 
    { 
        Write-Host "Timer service instance on server " $timer.Server.Name " is not Online. Current status:" $timer.Status 
        Write-Host "Attempting to set the status of the service instance to online" 
        $timer.Status = [Microsoft.SharePoint.Administration.SPObjectStatus]::Online 
        $timer.Update() 
    } 

else 

    Write-Host "All Timer Service Instances in the farm are online! No problems found" 
}

Update Claims Provider Trust in ADFS from Metadata file

If you are implementing single sign-on in your SharePoint application or any other web application, then ADFS is the default option as an Identity Provider especially when you are working with Microsoft Products and your application is authenticating from Active Directory.

ADFS can also be configured to authenticate from external provider (we will call it as Claims Provider moving forward) after performing few configuration steps. The steps will involve setting up trust between ADFS and the Claims Provider by binding certificate provided by claims provider in ADFS. We will not be looking into creating new claims provider trust because Microsoft has provided a very nice article for doing so - https://technet.microsoft.com/en-us/library/dn486771(v=ws.11).aspx

Recently I was assigned a task to update the expired Certificate and Federation Metadata for the Claims Provider from metadata file. I didn't find any straight forward article explaining how we can update the existing Claims Provider Trust from a file. Hence wanted to list down the step I followed to update the metadata for existing Claims Provider Trust.


  1. Add any root certificate you may have received from the Claims Provider to the "Trusted Root Authority"
  2. Open the Windows Power Shell on ADFS server
  3. Run the command to add ADFS Powershell Snapin
    1. Add-PSSnapin Microsoft.Adfs.PowerShell
  4. Update-AdfsClaimsProviderTrust -TargetName [Name of Claims Provider Trust to update] -MetadataFile [XML file location]

The above step will update the metadata and also the certificate if provided along with Metadata. To check if certificate is present within metadata then search for  tag in the metadata file. 

Perform the below steps only if you get the following errors at ADFS at the time of login:
  1. The Federation Service encountered an error while processing the WS-Trust request.Request type: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue
  2. Encountered error during federation passive request
Set-ADFSClaimsProviderTrust –TargetName [Name of Claims Provider Trust] –SigningCertificateRevocationCheck “None” 

*References