similar to other users, I want to use one sitefinity instance in order to handle several sub-sites, each having its own navigation structure.
subdomain1.mysite.com ==> Sitemap1 (pages A,B,C)
subdomain2.mysite.com ==> Sitemap1 (pages A,B,C)
subdomain3.mysite.com ==> Sitemap2 (pages A,C,D)
subdomain4.mysite.com ==> Sitemap2 (pages A,C,D)
subdomain5.mysite.com ==> Sitemap3 (pages E,F)
I want to enable cms admins/editors to define the assignment of pages to sitemaps.
After some research i figured the best solution would be to assign roles (never being assigned to users, just as a grouping mechanism) to the pages and use a custom SitemapProvider to filter sitemap nodes according to a subdomain-(1:1)->role-(m:n)->page mapping.
In order to do this I need access to the roles assigned to a sitemap node. In a preliminary test I used the following code in a standalone aspx page within a siteinity website to test this:
||CmsSiteMapProvider provider = CmsSiteMap.Provider;
||SiteMapNode p = provider.RootNode;
||SiteMapNodeCollection c = provider.GetChildNodes(p);
||foreach (CmsSiteMapNode item in c)
|| if (item.Roles != null)
|| foreach (var role in item.Roles)
|| Response.Write("<br />");
The problem is, that item.Roles is always null and I cannot find out why.
So my questions are:
1) How can I find out the roles assigned to Sitemap Nodes?
2) Is there a better approach to achieve what I am trying to do?
Thank you very much,