配置个性化webpart的办法 | ||
我们的目的是让每个用户都有自己的个性化空间,而只有管理员才能改变共享范围。 一、配置用户范围和共享范围的个性化 Windows\Microsoft.NET\Framework\v2.0.xxxxx\config\ 缺省配置如 Listing 1 Web.Config 第一个授权是防止用户进入共享范围。第二个授权是允许用户进入个性化webpart。 Listing 2. Web.Config
为了授权管理员改变共享范围,需要覆盖缺省配置。如下: 授权用户和角色以后,有两种方式展示个性化:初始化WebPartPersonalization类。如要缺省为共享范围,WebPartManager应为下面样式。
如果用户授权进入共享范围,也可以改变共享范围。如果没有授权改变共享范围,页面只能保持用户范围的个性化。 页面已经Page PreInit时,就不能更改初始范围。 要改变只能用ToggleScope()方法,这是一种非常好的方法,只有把个性化管理器加进webpart,就可以在用户范围和共享范围之间切换。 二、配置个性化数据库 缺省情况下,个性化数据库存放在APP_Data 目录下一个名为ASPNETDB.mdf的SQL Server 2005 Express 数据库里。如果要采用其他数据库(SQL Server 2000 或者 SQL Server 2005),需要做两件事。 对于第一个可执行下面目录的程序自动安装必要的数据库。 Windows\Microsoft.NET\Framework\v2.0.xxxxx\aspnet_regsql.exe 除了aspnet_regsql.exe外,还可以在相同目录下找到下面sql脚本 InstallCommon.sql --首先运行
UninstallPersonalization.sql --卸载InstallPersonalization.sql. 完成了配置个性化数据库以后,还需要让web配置文件指向新的数据库。下例中我们把个性化数据库命名为AppData放在名为DataServer服务器上。 Listing 3. Web.Config
<webParts>节下面包含<personalization>分节。defaultProvider属性指向名为定义在<providers>节里的MyPersonalizationProvider。provider使用了SqlPersonalization以及名为“DataServer”数据库连接字符串。 DataServer连接字符串定义在配置文件上部指向服务器名为DataServer,数据库名为AppData 。诚然也适用于其他数据库字符串。 |