// Dev10# 923217 - SiteMapProvider URL Table Invalid Using Cookieless // Don't keep the modifier inside the links table. Apply the modifier as approriate on demand private static SiteMapNode ApplyModifierIfExists(SiteMapNode node) { HttpContext context = HttpContext.Current; // Do nothing if the modifier doesn't apply if (node == null || context == null || !context.Response.UsePathModifier) { return(node); } // Set Url with the modifier applied SiteMapNode resultNode = node.Clone(); resultNode.Url = context.Response.ApplyAppPathModifier(node.Url); return(resultNode); }
public virtual SiteMapNode Clone(bool cloneParentNodes) { SiteMapNode node = this.Clone(); if (cloneParentNodes) { SiteMapNode node2 = node; SiteMapNode parentNode = this.ParentNode; while (parentNode != null) { SiteMapNode node4 = parentNode.Clone(); node2.ParentNode = node4; node4.ChildNodes = new SiteMapNodeCollection(node2); parentNode = parentNode.ParentNode; node2 = node4; } } return(node); }
public virtual SiteMapNode Clone(bool cloneParentNodes) { SiteMapNode current = Clone(); if (cloneParentNodes) { SiteMapNode node = current; SiteMapNode parent = ParentNode; while (parent != null) { SiteMapNode cloneParent = parent.Clone(); node.ParentNode = cloneParent; cloneParent.ChildNodes = new SiteMapNodeCollection(node); parent = parent.ParentNode; node = cloneParent; } } return(current); }
public void Node_Null_Attrib_clone () { SiteMapNode node = new SiteMapNode (new DummyProvider (), "", "", "", null, null, null, null, null); SiteMapNode copy = node.Clone (); Assert.IsNotNull (copy, "Node not created"); Assert.AreEqual (copy, node, "Cloning failed"); }
// Dev10# 923217 - SiteMapProvider URL Table Invalid Using Cookieless // Don't keep the modifier inside the links table. Apply the modifier as approriate on demand private static SiteMapNode ApplyModifierIfExists(SiteMapNode node) { HttpContext context = HttpContext.Current; // Do nothing if the modifier doesn't apply if (node == null || context == null || !context.Response.UsePathModifier) { return node; } // Set Url with the modifier applied SiteMapNode resultNode = node.Clone(); resultNode.Url = context.Response.ApplyAppPathModifier(node.Url); return resultNode; }
/// <summary> /// Check Quyền user truy cập từng trang /// </summary> /// <param name="context"></param> /// <param name="node"></param> /// <returns></returns> public override bool IsAccessibleToUser(System.Web.HttpContext context, System.Web.SiteMapNode node) { if (node == null) { throw new System.ArgumentNullException("node"); } if (context == null) { throw new System.ArgumentNullException("context"); } if (!this.SecurityTrimmingEnabled) { return(true); } //add node vao listNode if (!ProviderAllNode.Contains(node)) { ProviderAllNode.Add(node.Clone()); } //check thuong tinh visible bool isVisible; if (bool.TryParse(node["visible"], out isVisible)) { if (isVisible) { return(false); } } SiteMapNodeCollection lstNode = new SiteMapNodeCollection(); System.Collections.IList roles = node.Roles; System.Security.Principal.IPrincipal user = context.User; string strDeny = node["deny"]; //check deny if (strDeny != null) { string[] lstDeny = strDeny.Split(','); for (int i = 0; i < lstDeny.Length; i++) { if (lstDeny[i].Trim() == "*") { return(false); } if (user != null) { if (user.IsInRole(lstDeny[i].Trim())) { return(false); } } else if (lstDeny[i].Trim() == "?") { return(false); } } } if (roles == null || roles.Count == 0) { return(true); } if (user == null) { return(false); } foreach (string role in roles) { if ((role == "*") || user.IsInRole(role)) { return(true); } } return(false); }