<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Elizabeth Valliarampath - SharePoint PFE</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/elizabethv/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/elizabethv/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:25:23 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>SharePoint Online Issue with Design Manager</title>
      <link>https://docs.microsoft.com/archive/blogs/elizabethv/sharepoint-online-issue-with-design-manager</link>
      <pubDate>Tue, 19 Apr 2016 10:27:00 GMT</pubDate>
      <dc:creator><![CDATA[EValliarampath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/elizabethv/2016/04/19/sharepoint-online-issue-with-design-manager/</guid>
      <description><![CDATA[Recently I was assisting a customer with a SharePoint Online subscription who wanted custom Master...]]></description>
      <content:encoded><![CDATA[<p><p>Recently I was assisting a customer with a SharePoint Online subscription who wanted custom Master pages on their SPO sites.</p><p>Even though creating a&nbsp;Custom Master page is not the Microsoft best practise ( Microsoft pushes down updates to the default Master Pages which will not be received by the custom Master Page), the customer had very specific design requirements which required this.</p><p>Therefore we activated the &ldquo;"<span class="KeywordHighlight" id="#h41">SharePoint</span> Server Publishing Infrastructure" feature on the Site Collection and Site level for the Team Site. Activation of the site collection feature gave the following error the first time "Dependency feature 'PublishingMobile' (id: 57cc6207-aebf-426e-9ece-45946ea82e4a) for feature 'PublishingSite' (id: f6924d36-2fa8-4f0b-b16d-06b7250180fa) is not activated at this scope." However on the second attempt we were able to activate the feature, so we ignored the error we had received initially.</p><p>Once we started playing around with Design Manager to convert the HTML styles to Master Pages we noticed that the Design Manager in SPO seemed to look slightly different from the usual on prem one.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Before.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Before.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Before.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Before.JPG" border="0"></a></p><p></p><p></p><p>As shown in the screenshot there appeared to be an extra view of what looked lik the Master Page catalog on the 'Edit the Master Page' stage. Futhermore while trying to convert the HTML to Master Page, the resulting conversion was not getting displayed on the page.</p><p>On checking the Master Page gallery we found that the conversion was being done. However when applying this MASTER page to the site we were getting the default Seattle.master's design.</p><p>After a couple of hours of trying and re-trying, we tried creating a new Team&nbsp;site collection, after activating the Publishing features ( no errors this time) we tried the same there...And Voila! ..we got the normal Design Manager view back (see screenshot below). On this site the design manager worked as expected and converted the HTML files.</p><p><img alt=" "><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/After.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/After.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/After.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/After.JPG" border="0"></a></p><p></p><p>It looks like there have been quite a few instances of this issue. It seems to be connected to the "Dependency feature 'PublishingMobile'" errror which we received when we activated the Publishing Infrastructure feature.</p><p>The root cause of this issue is still not clear, but re-creating the site collection seems to fix the issue.</p><p></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>High Trust Provider Hosted Apps with App only Policy</title>
      <link>https://docs.microsoft.com/archive/blogs/elizabethv/high-trust-provider-hosted-apps-with-app-only-policy</link>
      <pubDate>Wed, 26 Aug 2015 22:41:00 GMT</pubDate>
      <dc:creator><![CDATA[EValliarampath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/elizabethv/2015/08/26/high-trust-provider-hosted-apps-with-app-only-policy/</guid>
      <description><![CDATA[We had a requirement at a customer to build an app which allows users to view the names of all the...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size:small;">We had a requirement at a customer to build an app which allows users to view the names of all the PDF files in the site collection even if the user does not have permissions to the library.</span><p><span style="font-size:small;">Even though the users can see the names of all the files, once they click on the link it should give them an Access Denied error.</span></p><p><span style="font-size:small;">The first thing that came to my mind was Provider Hosted Apps with App only policy to implement this requirement.</span></p><p><span style="font-size:small;">So we went about creating a High Trust Provider Hosted App using the CSOM SharePoint Search API.</span></p><p><span style="font-size:small;">After a couple of stumbles we managed to get the App up and running. Since it is a development environment, we had the web application in the Provider Hosted App project hosted on the local IIS of the SharePoint server.</span></p><p><span style="font-size:small;">The App works fine when we use the User and Client Context. However the moment we change it to App only policy it would throw an Unauthorized Exception.</span></p><p><span style="font-size:small;"><span style="font-family:Calibri;">It gave an System.UauthorizedAccessException with a CorrelationID. We searched the ULS logs with the correlation ID and found this error message </span><span style="background-color:#ffff00;">&lsquo;Do not apply UserResourceTally for app only request.&rsquo;</span></span></p><p><span style="font-size:small;">After some re-search we found that with Search SharePoint does not allow you to use App only principal, in the App Manifest file you can find that the only permission associated with search is 'QueryAsUserIgnoreAppPrincipal'.</span></p><p><span style="font-size:small;">Therefore it executes as the currently logged in user.</span></p><p></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture.PNG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture.PNG" border="0"></a></p><p><span style="font-size:small;">We ended up changing the code back to User + App context and setting the credentials of a site collection administrator&nbsp;for the ClientContext in the code.</span></p><p><span style="font-family:Consolas;font-size:small;"><span style="font-family:Consolas;font-size:small;">clientContext.Credentials = </span></span><span style="color:#0000ff;font-family:Consolas;font-size:small;"><span style="color:#0000ff;font-family:Consolas;font-size:small;"><span style="color:#0000ff;font-family:Consolas;font-size:small;">new</span></span></span><span style="font-family:Consolas;font-size:small;"><span style="font-family:Consolas;font-size:small;"> </span></span><span style="color:#2b91af;font-family:Consolas;font-size:small;"><span style="color:#2b91af;font-family:Consolas;font-size:small;"><span style="color:#2b91af;font-family:Consolas;font-size:small;">NetworkCredential</span></span></span><span style="font-family:Consolas;font-size:small;"><span style="font-family:Consolas;font-size:small;">(</span></span><span style="color:#a31515;font-family:Consolas;font-size:small;"><span style="color:#a31515;font-family:Consolas;font-size:small;"><span style="color:#a31515;font-family:Consolas;font-size:small;">"CONTOSO\\spadmin"</span></span></span><span style="font-family:Consolas;font-size:small;"><span style="font-family:Consolas;font-size:small;">, </span></span><span style="color:#a31515;font-family:Consolas;font-size:small;"><span style="color:#a31515;font-family:Consolas;font-size:small;"><span style="color:#a31515;font-family:Consolas;font-size:small;">"password"</span></span></span><span style="font-family:Consolas;font-size:small;"><span style="font-family:Consolas;font-size:small;">);</span></span></p><p><span style="font-family:Consolas;font-size:small;">&nbsp;</span></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Search API with CSOM : Attribute vector 'Title' not available for sorting</title>
      <link>https://docs.microsoft.com/archive/blogs/elizabethv/sharepoint-search-api-with-csom-attribute-vector-title-not-available-for-sorting</link>
      <pubDate>Tue, 24 Mar 2015 12:10:00 GMT</pubDate>
      <dc:creator><![CDATA[EValliarampath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/elizabethv/2015/03/24/sharepoint-search-api-with-csom-attribute-vector-title-not-available-for-sorting/</guid>
      <description><![CDATA[Attribute vector 'Title' not available for sorting.This error occurs while trying to apply sort...]]></description>
      <content:encoded><![CDATA[<p>Attribute vector 'Title' not available for sorting.<p style="margin:0in;font-family:Calibri;font-size:11pt;">This error occurs while trying to apply sort using APIs to sort a column which is not enabled for sorting on Search schema.</p><p style="margin:0in;font-family:Calibri;font-size:11pt;">Navigate to Search Administration on Central Administration and select Search Schema.</p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p><p style="margin:0in;font-family:Calibri;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/_1.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/_5F00_1.jpg"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/_1.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/_5F00_1.jpg" border="0"></a></p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p><p style="margin:0in;font-family:Calibri;font-size:11pt;">Select the Managed Property that you are trying to use for sorting.</p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p><p style="margin:0in;font-family:Calibri;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/2.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/2.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/2.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/2.JPG" border="0"></a></p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p><p style="margin:0in;font-family:Calibri;font-size:11pt;">Now click on this Managed property. This opens the 'Edit Managed Property' page.</p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p><p style="margin:0in;font-family:Calibri;font-size:11pt;">Now scroll down until you reach the section on Sorting. Ensure that this is set to 'Yes- active' as shown in below screenshot, which allows the value to be sortable immediately after a full crawl.</p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p><p style="margin:0in;font-family:Calibri;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/4786.3.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/4786.3.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/4786.3.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/4786.3.JPG" border="0"></a></p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p><p style="margin:0in;font-family:Calibri;font-size:11pt;">'Yes - latent' option allows the value to be made sortable at a later period of time by selecting 'Yes - active' without requiring a full crawl.</p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p><p style="margin:0in;font-family:Calibri;font-size:11pt;"></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2013 Designer Workflows Using Call HTTP Service to retrieve choice column values</title>
      <link>https://docs.microsoft.com/archive/blogs/elizabethv/sharepoint-2013-designer-workflows-using-call-http-service-to-retrieve-choice-column-values</link>
      <pubDate>Mon, 16 Mar 2015 11:52:00 GMT</pubDate>
      <dc:creator><![CDATA[EValliarampath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/elizabethv/2015/03/16/sharepoint-2013-designer-workflows-using-call-http-service-to-retrieve-choice-column-values/</guid>
      <description><![CDATA[In SharePoint 2013 the Call HTTP Service action is a very powerful addition to the the repertoire of...]]></description>
      <content:encoded><![CDATA[<p>In SharePoint 2013 the Call HTTP Service action is a very powerful addition to the the repertoire of functionality provided by SharePoint Desinger Workflows.<p>It is a convenient way to add extra functionaly to SharePoint Designer workflows ( by delegating work to a remote web service). Apart from that I enjoy the extra flexibility it provides by calling the REST services provided by SharePoint to retrive values from lists/libraries.</p><p>I recently had to develop a workflow in SharePoint to allow Managers to assign tasks to team members from a pre-defined list of tasks. These tasks are stored as the items in a multi select choice column as shown in below screenshot.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/1651.10.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/1651.10.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/1651.10.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/1651.10.JPG" border="0"></a></p><p>For this I need to retrieve the selected items in the multi select choice column in the SP Designer workflow. I found out that the Call HTTP action was the easiest way to implement this requirement.</p><p>Most of you might have tried calling the SharePoint REST services from SP Desinger workflows already.</p><p>You have to use the Build Dictionary variable and add two items to the dictionary named Accept and Content-type as shown in the screenshots.</p><p></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/dictionary.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/dictionary.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/dictionary.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x450/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/dictionary.JPG" border="0"></a></p><p></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Accept.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Accept.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Accept.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/350x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Accept.JPG" border="0"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/ContentType.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/ContentType.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/ContentType.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/350x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/ContentType.JPG" border="0"></a></p><p></p><p>The Call HTTP Web Service action has to be added after this. Then right click the action and select properties, and set the request header to the Dictionary variable which was built in the previous step as shown in the screenshot.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/4.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/4.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/4.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/4.JPG" border="0"></a></p><p></p><p>In my case I am retrieving values from a SharePoint List which has a multi select choice column and I need iterate through the items to retrieve the values which were selected for each item.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/5.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/5.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/5.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/5.JPG" border="0"></a></p><p>Therefore we need to choose HTTP GET as the HTTP method and specify the list, and filter specifications. Selecting specific columns will reduce the amount of data that is returned from the call.</p><p>As shown in the screenshot 'Tasks Assigned' is the multi select column. To retrieve the values of just this particular column from all the other data that the REST call returns, we need to use the 'Get an Item from a Dictionary' action.</p><p>Getting the values for the multi select column was the part where I struggled because the on the browser the data is returned in ATOM format and not in JSON.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/5706.7.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/5706.7.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/5706.7.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/5706.7.JPG" border="0"></a></p><p>For this I used Fiddler. Before starting a new capture, click on the Filters tab and Select Use Filters.</p><p>In the Request Headers section, select Set request header and enter the header as application/json;odata=verbose.</p><p>Now browse to the SharePoint REST url and refresh the page, this allows you to download the feed in the JSON format.</p><p>Open this file using JSON viewer, this enables you to view the correct path that needs to be used in the Get an Item from a dictionary action as shown in the below screenshot.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/6278.8.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/6278.8.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/6278.8.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/6278.8.JPG" border="0"></a></p><p></p><p>The same path can be used in the Action as shown below.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/5226.9.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/5226.9.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/5226.9.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/5226.9.JPG" border="0"></a></p><p></p><p>The count of the items selected in the multi select column can be obtained using the Count items in Dictionary action.</p><p>I created a loop that loops till the value of the count and inside the loop I use the 'Assing a Task' action to assign the task to team members.</p><p>The complete workflow can be seen in the below screenshot.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/11.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/11.jpg"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/11.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/11.jpg" border="0"></a></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Enable Forms Based Auth for an existing Web application</title>
      <link>https://docs.microsoft.com/archive/blogs/elizabethv/sharepoint-2010-enable-forms-based-auth-for-an-existing-web-application</link>
      <pubDate>Sun, 15 Feb 2015 22:19:00 GMT</pubDate>
      <dc:creator><![CDATA[EValliarampath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/elizabethv/2015/02/15/sharepoint-2010-enable-forms-based-auth-for-an-existing-web-application/</guid>
      <description><![CDATA[Enable Forms authentication for an existing SharePoint 2010 Web applicationConvert web application...]]></description>
      <content:encoded><![CDATA[<p>Enable Forms authentication for an existing SharePoint 2010 Web application<p></p><p>Convert web application from Classic Authentication to Claims authentication using the following PowerShell commands. The user running these commands should be a securityadmin on SQL server instance, db_owner on all databases that are to be updated and a local Administrator on the server on which you are running the Windows PowerShell cmdlets.</p><p><span style="font-family:Courier New;">$webApp = Get-SPWebApplication "<span dir="ltr">https://sharepoint.pink.com/</span>"<br> $webApp.UseClaimsAuthentication = $True;<br> $webApp.Update()</span></p><p><span style="font-family:Courier New;">Do an IISRESET after this.<br></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Run the following PowerShell script</span> to perform user migration.<br></span></p><p><span style="font-family:Courier New;">$webApp.Migrate($true);<br></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Once this is completed, go back to Central Administration -&gt; Web Applications. Select the converted Web Application and click on Authentication Providers.</span><br></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">You will see that the Authentication Membership Provider Name would have changed to Claims Based Authentication.<br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/2867.2.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/2867.2.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/2867.2.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/2867.2.JPG" border="0"></a><br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Use the following article as reference to set up Forms Based Authentication for SharePoint 2010 <a href="https://msdn.microsoft.com/en-us/library/office/gg252020(v=office.14).aspx">https://msdn.microsoft.com/en-us/library/office/gg252020(v=office.14).aspx</a> </span></span><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;"><br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;On Central Administration go to Manage Web Applications -&gt; Select the Web Application and go to Authentication Providers. Choose the default zone, and browse down to the Claims Based Authentication section.</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Here select the 'Enable Forms Based Authentication (FBA)', as shown in screenshot. Add a name for the ASP.NET Membership provider and ASP.NET Role manager&nbsp;(this will be used later), and click OK.<br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture11.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture11.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture11.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture11.JPG" border="0"></a><br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Now we need to prepare the Microsoft SQL Server database for the ASP.NET membership and role providers.</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">The Microsoft SQL Server membership provider stores user information in a SQL Server database. You can create your SQL Server user store manually by running <strong>Aspnet_regsql.exe</strong> from the command line. Otherwise you can use the ASP.NET Configuration tool which you can find under the <span class="label">Website</span> menu in Microsoft Visual Studio.</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Start SQL Server Management Studio to connect to the SQL instance used by SharePoint, and create a new Database called aspnetdb as shown in the screenshot.<br></span></span></p><p></p><p>Use <span class="label">aspnet_regsql.exe</span> to create the membership database. Open a Command Prompt window. Run the following command-line command to change directories to the Microsoft .NET Framework 2.0 directory.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture3.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture3.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture3.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture3.JPG" border="0"></a></p><p><strong><span class="code">cd C:\Windows\Microsoft.NET\Framework64\v2.0.50727</span></strong></p><p>Then run the following command as shown in screenshot</p><p><strong><span class="code">aspnet_regsql -S DEMO2010A -E -A mr &ndash;d aspnetdb_claim</span></strong></p><p><strong>-S </strong>&nbsp;&nbsp;&nbsp;Specifies the server. In this example, the server is local.</p><p><strong>-E </strong>&nbsp;&nbsp;&nbsp;Specifies that Windows authentication should be used to connect to SQL Server.</p><p><strong>-A mr</strong>&nbsp;&nbsp;&nbsp;Specifies that the membership and role feature should be added.</p><p><strong>-d </strong>&nbsp;&nbsp;&nbsp;Specifies the database name.</p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;"><br></span></span><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture4.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture4.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture4.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture4.JPG" border="0"></a><br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">This creates all the tables and Stored Procedures required for ASP.NET Membership and role provider. Verify that this has been created.<br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture5.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture5.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture5.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture5.JPG" border="0"></a><br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Grant database access to your web application AppPool account.</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Now t</span></span>here are three web.config files that you must modify:</p><p></p><ul>
<li>
<p>Central Administration: To allow picking for site collections.</p>
</li>
<li>
<p>Security Token Service: To allow sign in, and for issuing tokens.</p>
</li>
<li>
<p>FBA Web Application: To allow picking on the local web application.</p>
</li>
</ul><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">In the web.config file for the FBA web application, add the following connection string after the closing <span class="input">&lt;/configSections&gt;</span> tag.</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&lt;connectionStrings&gt;<br>&nbsp; &lt;add name=<span style="color:#a31515;">"MySQLServer"</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionString=<span style="color:#a31515;">"Initial Catalog=aspnetdb;data source=SPDCSQL;Integrated Security=SSPI;"</span> /&gt;<br>&lt;/connectionStrings&gt;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">as shown in the screenshot.<br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture7.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture7.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture7.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture7.JPG" border="0"></a><br></span></span></p><p></p><p>Repeat the same step for the web.config file under&nbsp;<span class="label">Central Administration</span> website and the <span class="label">SecurityTokenServiceApplication</span> website.</p><p></p><p>The <span class="label">SecurityTokenServiceApplication</span> website is located under the <span class="label">SharePoint Web Services</span> website.</p><p>Back at the FBA Web Application open the web.config file again and make the following changes:</p><p>Add the following code under the provider tag under membership</p><p>&lt;add name="aspnetmembership" connectionStringName="MySQLServer" applicationName="MyAppName" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /&gt;</p><p>and the following code under the provider tag under role manager</p><p>&lt;add name="aspnetrolemanager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="MyLocalSQLServer" applicationName="MyAppName" /&gt;</p><p>Do the same for the the web.config file under&nbsp;<span class="label">Central Administration</span> website and the <span class="label">SecurityTokenServiceApplication</span> website.</p><p>To add users and roles to the membership and role provider database execute the follwing command on aspnetdb database:</p><p><strong>declare @now datetime</strong><br><strong>set @now= GETDATE()</strong><br><strong>exec aspnet_Membership_CreateUser 'MyAppName','admin1','pass@word1',</strong><br><strong>&nbsp;&nbsp;&nbsp; '','admin1@contoso.com','','',1,@now,@now,0,0,null</strong></p><p>Run the following query to add the user <span class="label">admin1</span> to the <span class="label">Admin</span> role:</p><p><strong>EXEC aspnet_Roles_CreateRole 'MyAppName', 'Admin'</strong><br><strong>EXEC aspnet_UsersInRoles_AddUsersToRoles 'MyAppName', 'admin1', 'Admin', 8</strong></p><p>Now go to Central Administration and Under Application Management select Change site collection administrators. Select a site collection under the FBA web application.<strong><br></strong></p><p>For second Site collection Administrator click on the user lookup button and Select Forms Auth. Type admin1 and search. Select the user as shown in screenshot.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture9.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture9.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture9.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture9.JPG" border="0"></a></p><p>Once the Forms Auth user has been added as a Site collection Administrator, navigate to the Site Collection. You will see a dropdown to choose the Authentication type.</p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture8.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture8.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture8.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture8.JPG" border="0"></a></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">Choose Forms Auth and trype the admin1 username and password. You will now be logged in using this account.<br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture10.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture10.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/98/Capture10.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/450x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-98/Capture10.JPG" border="0"></a><br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">You can add more FBA members and roles using the following SQL script:<br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">declare @now datetime<br>set @now= GETDATE()<br> <br>exec aspnet_Membership_CreateUser 'MyAppName','bob','pass@word1',<br>&nbsp;&nbsp;&nbsp; '','bob@contoso.com','','',1,@now,@now,0,0,null<br>exec aspnet_Membership_CreateUser 'MyAppName','mary','pass@word1',<br>&nbsp;&nbsp;&nbsp; '','mary@contoso.com','','',1,@now,@now,0,0,null<br>exec aspnet_Membership_CreateUser 'MyAppName','jack','pass@word1',<br>'','jack@contoso.com','','',1,@now,@now,0,0,null<br><br>EXEC aspnet_Roles_CreateRole 'MyAppName', 'Employee'<br>EXEC aspnet_Roles_CreateRole 'MyAppName', 'TeamManager'<br>EXEC aspnet_Roles_CreateRole 'MyAppName', 'CEO'<br><br>EXEC aspnet_UsersInRoles_AddUsersToRoles 'MyAppName', 'bob', 'Employee', 8 <br>EXEC aspnet_UsersInRoles_AddUsersToRoles 'MyAppName', 'mary', 'TeamManager', 8 <br>EXEC aspnet_UsersInRoles_AddUsersToRoles 'MyAppName', 'jack', 'CEO', 8 <br>EXEC aspnet_UsersInRoles_AddUsersToRoles 'MyAppName', 'jack', 'Admin', 8</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">These members/roles will have to be granted permission to the site collection manually.<br></span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p><span style="font-family:Courier New;"><span style="font-family:arial,helvetica,sans-serif;">&nbsp;</span></span></p><p></p></p>
]]></content:encoded>
    </item>
  </channel>
</rss>