Sharepoint 2010 迭代所有sharepoint网站集和子网站,并创建向下钻取菜单

Sharepoint 2010 迭代所有sharepoint网站集和子网站,并创建向下钻取菜单,sharepoint-2010,sitecollection,Sharepoint 2010,Sitecollection,我需要迭代web应用程序下的所有网站集和网站集下的子网站,并创建共享点深入菜单 public class _starter : MasterPage { protected Menu CustomMenu; protected void Page_Load(object sender, EventArgs e) { using (SPSite site = new SPSite(SPContext.Current.Site.Url)) {

我需要迭代web应用程序下的所有网站集和网站集下的子网站,并创建共享点深入菜单

public class _starter : MasterPage
{
    protected Menu CustomMenu;

    protected void Page_Load(object sender, EventArgs e)
    {
        using (SPSite site = new SPSite(SPContext.Current.Site.Url))
        {
            SPWebApplication webapp = site.WebApplication;
            CustomMenu.Items.Clear();
            BeginProcess(webapp);
        }
    }

    public void BeginProcess(SPWebApplication webApp)
    {
        //Iterate through each site collection inside the web application
        //Iterate through each site collection inside the site collection 
        foreach (SPSite site in webApp.Sites)
        {
            using (SPWeb oSPWeb = site.OpenWeb())
            {
                if (oSPWeb.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions))
                {
                    MenuItem parentMenuItem = new MenuItem(oSPWeb.Title, oSPWeb.Title, "", oSPWeb.Url);
                    CustomMenu.Items.Add(parentMenuItem);
                    if (oSPWeb.Webs.Count > 0)
                    {
                        RecursiveWebCheck(oSPWeb, parentMenuItem);
                    }
                }
            }
        }
    }

    private void RecursiveWebCheck(SPWeb parentoSPWeb, MenuItem parentMenuItem)
    {
        foreach (SPWeb web in parentoSPWeb.Webs)
        {
            MenuItem childMenuItem = new MenuItem(web.Title, web.Title, "", web.Url);
            parentMenuItem.ChildItems.Add(childMenuItem);
            RecursiveWebCheck(web, childMenuItem);
            web.Dispose();
        }
    }
}