Overview of My SharePoint Sites and how the data is populated

SharePoint gives you the ability to get a list of sites that your login account is explicitly a member of.  This grouping of links is built on the server-side by the Profile Synchronization timer job that runs for each Web Application.  The data is stored in the SSP database and is visible in the following locations: 

SharePoint Web UI

  • Under your My Site by clicking the Memberships link

Memberships in My Site

 

  • From the My Links menu next to the "Welcome LoginName" link.  Once you have informaiton in the Memberships view of the My Site, there will be a menu item added named My SharePoint Sites.  Hovering over this menu item will show you all the links from your My Site, Memberships view.

My SharePoint Sites Menu in Browser

 

Client machines

  • These links are available on client machines in the Office Open/Save As dialog box as well.

My SharePoint Site in Office Dialog

 

You can run into various issues in which these links are not populated, or once populated are no longer cleaned up.  I wanted to provide some information on how SharePoint determines which links to add to the Memberships view as well as provide some information about how the Office client knows which links to show.  This should give some ideas for isolating and troubleshooting these issues.  For this example, we'll setup a Site Collection at http://companyportal/sites/Home.

  • When you create the Site Collection, there are three SharePoint Groups created.  Home Viewers, Home Members, and Home Owners.  These three SharePoint Groups are designated as the Viewers, Members, and Owners groups for the site.  You can validate that these groups are setup and have permissions to the site by following these steps:

    1. Browse the Site collection

    2. Click Site Actions | Site Settings

    3. People and Groups

    4. Settings menu | Set Up Groups.   You'll see which SharePoint Groups are designated as Visitors, Members, and Owner

      I'll be posting another blog on a scenario in which these groups can cause links to display in My SharePoint Links when you no longer have access to the site.

  • The Profile Synchronization timer job runs every hour and reads users that are explicitly added to the SharePoint Group listed as the Members group.  In this case, users that are explicitly added to Home Members.  A link to the Home site is added to the Memberships list in the My Site.  The user's login account has to be explicitly added to the Members group as the job does not expand domain groups.  It's also important to note that the user has to be in the Members group...being in the Owners group will not add the link.

  • At this point the My SharePoint Sites menu item will show up under the My Links menu.

  • When you open an Office client that is SharePoint aware (2003 and 2007), and you have configured a My Site on the client, a call is made to the GetLinks method of the following web service: /personal/<user>/_vti_bin/publishedlinksservice.asmx

    • This call by default occurs once a day. 

    • The response of the web service call is the items from your My Site's Memberships data.

    • The timestamp of the sync is stored in the following registry key.  If you delete this registry key, the Office client will sync with the server the next time the Open/Save As Dialog is displayed.

      • HKEY_Current_User\Software\Microsoft\Office\12.0\Common\Portal\LinkPublishingTimestamp
  • The Membership data returned is used to create a Network Places under your local profile at:

    • DRIVE:\Documents and Settings\<LoginName>\Local Settings\Application Data\Microsoft\OFFICE\My SharePoint Sites
  • Office also creates a registry key for each link that stores the meta data that came down from the web service call at:

    • HKEY_Current_User\Software\Microsoft\Office\12.0\Common\Server Links
  • The information is then displayed in the Open/Save As dialog under My SharePoint Sites

To reset everyone's Memberships links on the server side:  [Word of caution...if the sync is failing for whatever reason, the links will remain empty until that is fixed...in other words, don't randomly run these steps.]

  1. Run:  Stsadm.exe -o Sync -DeleteOldDatabases 0
  2. All the Memberships information for all users should be cleared out.
  3. Wait for the Profile Synchronization Timer Job to fire.

To reset your My SharePoint Links on the client side:  [Same warning as above...if the web service call to the My Site fails, these links will not be repopulated until that connection is established.]

  1. Clear out the Network Places and Shortcuts under:

    DRIVE:\Documents and Settings\<LoginName>\Local Settings\Application Data\Microsoft\OFFICE\My SharePoint Sites

  2. Delete the following registry keys:

    HKEY_Current_User\Software\Microsoft\Office\12.0\Common\Server Links
    HKEY_Current_User\Software\Microsoft\Office\12.0\Common\Portal\LinkPublishingTimestamp

  3. Open an Office client, and open the Open File Dialog

  4. Click My SharePoint Sites and the links should repopulate.  May take 30-60 seconds since the web service call has to complete and the links have to be generated.

 

Update: 06/30/2010 - fixed publishedlinksservice.asmx mentioned in comments.  The ASMX file was missing some characters.  Thanks for the feedback!