AspNet站点地图小结
一、配置项目的站点地图路径
a) 通过修改站点地图的提供程序实现
Web.config
<system.web> 节点下
<siteMap defaultProvider="CRMSiteMapProvider"> //代表默认提供程序
<providers >
<add name="CRMSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap"/>
<add name="SystemSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Manager/Web.sitemap"/>
解析:
Name: 提供程序名
Type: 提供程序类型 System.Web.XmlSiteMapProvider
siteMapFile站点地图路径
</providers>
</siteMap>
b) 绑定不同的站点地图只需将数据源的SiteMapProvider 属性设置为对应配置的提供程序名称即可
二、站点地图的权限设置
1. 配置站点地图的权限
<siteMapNode url="" roles="总经理" title="UserAddddddddd" description=""></siteMapNode>
若有多个角色可以用 , 号隔开。
2. 配置站点地图的提供程序
<siteMap defaultProvider="CRMWebSiteMap" enabled="true">
<providers>
<add name="CRMWebSiteMap"
type="System.Web.XmlSiteMapProvider"
siteMapFile="~/Web.sitemap"
securityTrimmingEnabled="true"/>
</providers>
</siteMap>
注意: 要将securityTrimmingEnabled="true"设置为true
注 : 对于空URL节点起作用,其余节点不起作用
三、动态生成站点地图
a) 通过后台生成站点地图
1. 编写后台类(BLL DAL 等)
2. 在页面中加载导航内容
protected void Page_Load(object sender, EventArgs e)
{
bindTree(0,null);
}
private void bindTree(int parentid,TreeNode node)
{
BLL.BLLSiteMap b = new BLL.BLLSiteMap();
List<Models.SiteMap> siteMapList=b.getSiteMap(parentid);
foreach (Models.SiteMap siteMap in siteMapList)
{
TreeNode t = new TreeNode();
t.NavigateUrl = siteMap.Url;
t.Text = siteMap.Title;
t.Value = siteMap.Title;
bindTree(siteMap.Id,t);
if (node != null)
{
node.ChildNodes.Add(t);
}
else {
this.TreeView1.Nodes.Add(t);
}
}
}
b) 通过重写站点地图提供程序实现
1. 在web.config 文件中加入sitemap提供程序
<add name="SqlSiteMapProvider" type="SqlSiteMapProvider" connectionStringName="ConStr"/>
Type 对应后台实现其功能的类
2. 在AppCode文件夹下写对应的实现类
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Configuration.Provider;
using System.Configuration;
using System.Collections.Generic;
using System.Web.Configuration;
using BLL;
using System.Collections.Specialized;
/// <summary>
/// CRMProvider 的摘要说明
/// </summary>
public class CRMProvider:StaticSiteMapProvider
{
public SiteMapNode root;
public string key;
private readonly object obj = new object();
public CRMProvider()
{
}
//重写其Initialize 方法注意重写的方法参数
//可以通过转到定义查看此方法
public override void Initialize(string name, NameValueCollection attributes)
{
base.Initialize(name, attributes);
if (attributes == null)
{
throw new ArgumentNullException();
}
if (string.IsNullOrEmpty(name))
{
name = "SqlSiteMapProvider";
}
key = name;
if (!attributes.HasKeys() || attributes["connectionStringName"] == null)
{
throw new ProviderException();
}
//获得连接字符串的名称
string connectionStringName = attributes["connectionStringName"].ToString();
if (string.IsNullOrEmpty(connectionStringName))
{
throw new ProviderException();
}
if (string.IsNullOrEmpty(WebConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString))
{
throw new ProviderException();
}
}
//继承StaticSiteMapProvider类需实现其方法
public override SiteMapNode BuildSiteMap()
{
SiteMapNode rootnode = new SiteMapNode(this,"root");
lock(obj){
if(root !=null){
return root;
}
rootnode.Title = "CRMaa";
rootnode.Url = "sss";
rootnode.Description = "CRM系统";
AddNode(rootnode,null);
root = rootnode;
GetSiteMapNode(0, RootNode);
}
return rootnode;
}
protected override SiteMapNode GetRootNodeCore()
{
lock(obj){
root = BuildSiteMap();
//注意SiteMapNode创建时需保证线程安全
//将其锁定
}
return root;
}
private void GetSiteMapNode(int parentid, SiteMapNode parentNode)
{
BLL.BLLSiteMap b = new BLLSiteMap();
List<Models.SiteMap> list = b.getSiteMap(parentid);
foreach (Models.SiteMap siteMap in list)
{
SiteMapNode node = new SiteMapNode(this, siteMap.Id.ToString());
node.Url = siteMap.Url;
node.Title = siteMap.Title;
node.Description = siteMap.Description;
AddNode(node, parentNode);
GetSiteMapNode(siteMap.Id, node);
}
}
}
分享到:
相关推荐
如果你曾经到过陌生的目的地旅行过,那么你一定知道地图的重要性—它们能够帮助使你的旅行更舒适些。这个道理对于网站来说是同样的。...本文将解释什么是站点地图并且描述如何开发使用它们的网站导航结构。
用.NET技术开发的伪静态学习网站,网站首页实现了不同版块信息,新闻中心,图片轮播浏览, 最新的视频信息,资料下载,及在线答疑; 后台管理:用户管理,用户组管理,类型管理,文章管理,文件管理,视频管理,...
本源码是一个商业购物网站源码,分为前台页面和后台管理,欢迎下载 三、菜单功能 前台页面 1、首页;所以宝贝;男装专区;女装专区;外套;T恤;衬衫;针织;牛仔;休闲 2、动态图片展示 3、关于我们;联系我们...
ASP.NET 2.0的站点导航服务可以帮助开发人员创建和管理站点地图。 特别提到的“ATLAS”是ASP.NET AJAX的早期预览版本,它提供了客户端脚本库和服务器端组件,使得开发者能够构建具有异步交互特性的富互联网应用。...
Aspnet Mvc教程 1.说明 01:06 Aspnet Mvc教程 2.准备工作 02:37 Aspnet Mvc教程 3. 建立并运行 02:46 Aspnet Mvc教程 4.默认程序结构 04:18 Aspnet Mvc教程 5. 基本工作流程 05:13 Aspnet Mvc教程 6.mvc理论讲解...
采用AJAX操作智能提示,多语言,WBE2.0多标签显示页面,可以同时打开多个窗口模式方便操作手机网站:内容管理,栏目管理网站管理:内容管理网站目录无限极分类单页面外链节草稿箱页面显示字段定义颜色标题栏目管理:...
【AspNet程序运行助手(脱离IIS运行工具)】 在IT领域,ASP.NET是微软公司推出的一种用于构建Web应用程序的框架,它基于.NET Framework,提供了一种高效、安全且可扩展的开发环境。然而,通常情况下,ASP.NET应用程序...
aspnet生命周期 aspnet生命周期 aspnet生命周期 aspnet生命周期
Aspnet-aspnet-bootstrap-4.zip,aspnet/templates输出[正在]重写为bs4 finalheads up:ms完成了!您需要基于2.1/2.2 dotnet sdk的模板您不再需要此模板,asp.net是一个开源的web框架,用于使用.net构建现代web应用和...
Aspnet-aspnet-app.zip,一个asp.net appaspnet应用程序,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务。asp.net创建基于html5、css和javascript的网站,这些网站简单、快速,可以扩展到数百万用户...
【ASP.NET 计算机教学网站源码】是一款基于ASP.NET技术开发的教育类网站,其核心功能包括视频上传与浏览、文件上传与下载、在线答疑、信息展示、权限管理以及用户组管理等。该网站源码采用了三层架构设计,这是一种...
Aspnet-aspnet-api-versioning.zip,提供一组库,这些库将服务API版本控制添加到ASP.NET Web API、具有ASP.NET Web API的OData和ASP.NET Core.ASP.NET API版本控制,asp.net是一个开源的web框架,用于使用.net构建现代...
ASP.NET是Microsoft公司推出的用于编写动态网页的一项新技术,是Microsoft公司的动态服务器页面...既可以作为大专院校计算机专业师生的教材或者参考书,也可供动态网站开发人员及对ASP.NET技术感兴趣的技术人员学习参考
Aspnet-aspnet-core-identity.zip,ASP.NET核心标识系列ASP.NET核心标识系列,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务。asp.net创建基于html5、css和javascript的网站,这些网站简单、快速,...
1、线上运营着的小程序,可以扫描二维码直接体验,代码开源分享给大家,需要的自己修改一下 2、【推荐】如果你希望找个一个超级简洁的计划清单,计划列表,任务列表,TodoList,任务助手,这个是不错的选择,要的...
Aspnet-aspnet-core-webapi.zip,um模板com varias configura_es para aspnet coreaspnet core webapi,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务。asp.net创建基于html5、css和javascript的...
`标签`中的"示例"表明,这个Demo包含了一些实际的代码片段和运行实例,这些例子覆盖了Highcharts的基本用法以及一些高级特性,如折线图、柱状图、饼图、散点图、地图等。通过这些示例,开发者可以快速上手,并了解到...
ASP.NET是微软公司推出的一种用于构建动态网站、web应用和服务的框架,它基于.NET Framework。这个框架允许开发者使用C#、VB.NET或其他.NET支持的语言编写代码,并通过HTTP协议提供服务。在传统的部署环境中,ASP...
网站后台模块 1、商品管理:添加新产品、更新产品信息、删除商品。(图书分为电子书与图书,电子书购买后可以在线观看,书籍可以上传多张图片在前台浏览时可以切换已经放大浏览图片,后台上传电子书支持PDF格式) ...
微软的最小的ASPNET开发工具