We use a file in AspDotNetStorefrontCore (source code required) called SiteMapComponentArt to create the sitemap. This calls various methods in the EntityHelper class (also in AspDotNetStorefrontCore) to build the tree. The data used comes from the execution of a stored procedure called aspdnsf_GetSimpleObjectEntityList, which already takes the CustomerLevelID as a parameter. If you have the appconfig FilterProductsByCustomerLevel set to true, this stored procedure will only return the products available for the CustomerLevel of the viewing customer.
<a href="http://www.aspdotnetstorefront.com">Shopping Cart Software</a>