0

私はそのような実装をしましたISiteMapNodeVisibilityProvider

public bool IsVisible(SiteMapNode node, HttpContext context, IDictionary<string, object> sourceMetadata)
        {
            return !context.Request.IsAuthenticated;
        }

しかし、新しいバージョンでは、縫い目が次のように変更されますISiteMapNodeVisibilityProvider

public interface ISiteMapNodeVisibilityProvider
    {
        bool AppliesTo(string providerName);
        bool IsVisible(ISiteMapNode node, IDictionary<string, object> sourceMetadata);
    }

古いロジックを新しいバージョンに実装する方法を知りたいのですが? それは含まれていませんcontext

4

3 に答える 3

2

私はそれがそのように行われるべきだと信じています:

public class AuthenticatedVisibilityProvider : SiteMapNodeVisibilityProviderBase
    {
        #region ISiteMapNodeVisibilityProvider Members

        /// <summary>
        /// Determines whether the node is visible.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="sourceMetadata">The source metadata.</param>
        /// <returns>
        ///     <c>true</c> if the specified node is visible; otherwise, <c>false</c>.
        /// </returns>
        public override bool IsVisible(ISiteMapNode node, IDictionary<string, object> sourceMetadata)
        {
            return HttpContext.Current.Request.IsAuthenticated;
        }

        #endregion
    }
于 2013-11-03T21:50:26.657 に答える