How to open SharePoint Online site in SharePoint Designer 2013

How to open SharePoint Online site in SharePoint Designer 2013

As we know SharePoint Designer is no longer the product of choice. From what I can remember, the internal architecture of SharePoint Designer was based on Front Page. Over the years, the tool became an important tool in a developer’s toolbox, although plagued with issues.

I can almost count the number of times I almost ended up pulling my hair out because of SharePoint Designer’s weird and nuanced quirks – open a form in advanced mode and forget to close a HTML tag, the webpart fails to render with correlation ID, bloated injections in the list view web parts, slow loading times and randomly failing to load 2013 platform workflows until clearing the cache were just some of things that I have had to put up with. So, when Microsoft announced that there would no longer be a new version it was almost like a blessing in disguise.

However, there are still use cases where SharePoint Designer is useful. For example, trying to set a property bag value without having to write custom code or PowerShell. So, how do we open SharePoint Online sites in SharePoint Designer?

We use Fiddler to intercept the HTTP traffic, inject some cookies, that SharePoint Designer would pick up. For this to work, sign into a SharePoint Online site and press F12 to open the developer tools.

In Chrome, click on Application, then select Cookies and your SPO site from the left as shown below.

Retrieve the values for rtFa and FedAuth. FedAuth (Federation Authentication) is a cookie for each top-level site in SharePoint and OneDrive, and rtFa (root Federation Authentication) is used across all of SharePoint. We need the values for both these to plug into Fiddler.

What we are going to do is to provide these two cookies with their values in the onBeforeRequest function to modify the request.

Open Fiddler, click on Fiddler Script, and find onBeforeRequest. Add the cookies to the collection by adding the following line to the Fiddler Script. Please note that I have trimmed the real values and these would be much longer than what is shown below.

oSession.oRequest[“Cookie”]=”rtFa=59+ZnEGK3RWcDga5k1o/Yg/LsxFjd4EtXn9iitAYcmMThCOEEwNkEDxCgAAAA;

FedAuth=77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48U1A+VjExLDBoLmZ8bWVtYmVyc2h

pcHwxMDAzMjAwMGY4YTczMTE5QGxpdmUuY29tLDAjLmZ8bWVtYmVyc2hpcHxyYWxpQGF6dXJlcHNjcmVkLm9u

bWljcm9zb2Z0LmNvbSwxMzI4NTQ5ODYwNjAwMDAwMDAsMTMyODU0OTg2MTMwMDAwMDAwLDEzMjg5MTQ

4OTAwOTkxNDIyNiwxMTEuMTE5LjE4My41OSwzLDE4YjhhMDZhLTc1NDQtNGM1OC05ZmY1LWNhYjcxNjAzNzRmN

CwsNWQ5Mzc5MmEtN2IyNC00MThkLWFmYmQtNjQwNDNlYWMwYTBjLDQ0NmUxMmEwLTQwMDEtMzAwMC05

ZjM1LTMyOTZiZGFlNjIyMyw2ODZiMWVhMC1mMGE2LTMwMDAtZDIzZC0U1B+;”

Save the script. Leave Fiddler open and make sure it is capturing traffic.

Open SharePoint Designer and open the site.

The only thing to be careful about here would be to make sure that the cookies are entered correctly and the rtFa and FedAuth are separated by semi colons and there is a space between the two. Once the Fiddler Script is ready, the SharePoint Designer should connect to the site, pass in the authentication, and authorize using the cookies injected in the onBeforeRequest method.