在asp.net 2.0中使用WebParts

这里只列出在web.config中配置与数据库的连接:
请注意其中的<Clear />标签,它将移除machine.config中的相应标签。我们还要增加一个连接字符串以指向我们的数据库,我把它命名为“Database1”
<connectionStrings>
<clear/>
<add name="LocalSqlServer"
   connectionShttp://www.cnblogs.com/Images/OutliningIndicators/None.gif" border=0>   user id=sa ;password=sa"/>
</connectionStrings>
<system.web>
<compilation debug="true"/>
<authentication mode="Forms" />
<membership>
  <providers>
  <clear/>
  <add name="AspNetSqlMembershipProvider"
    http://www.cnblogs.com/Images/OutliningIndicators/None.gif" border=0>    Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
    connectionStringName="LocalSqlServer"
    applicationName="/CustomConnections" />
  </providers>
</membership>

<profile enabled="true" defaultProvider="TableProfileProvider">
  <providers>
  <clear/>
  <add name="TableProfileProvider"
     type="Microsoft.Samples.SqlTableProfileProvider"
     connectionStringName="LocalSqlServer"
     table="asdspnet_Profile"
      applicationName="/CustomConnections"/>
  </providers>
  </profile>
</system.web>

下面列举个性化设置:

我们的目的是让每个用户都有自己的个性化空间,而只有管理员才能改变共享范围。
我们还将研究如何配置自己的SqlPersonalization提供者来储存个性化数据。
一、配置用户范围和共享范围的个性化
为了让用户范围和共享范围的个性化发挥作用,必须授权用户组可以个性化。缺省状态下所有用户可以使用用户范围,不允许用户改变共享范围。
缺省配置在下面目录的Web.Config里。
Windows/Microsoft.NET/Framework/v2.0.xxxxx/config/
缺省配置如
Listing 1 Web.Config
<webParts>
  <personalization>
  <authorization>
    <deny users="*" verbs="enterSharedScope" />
    <allow users="*" verbs="modifyState" />
  </authorization>
  </personalization>
</webParts>
第一个授权是防止用户进入共享范围。第二个授权是允许用户进入个性化webpart。
为了授权管理员改变共享范围,需要覆盖缺省配置。如下:
Listing 2. Web.Config
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <system.web>
     <webParts>
      <personalization>
        <authorization>
          <allow users="*" verbs="modifyState" />
          <allow roles="Administrators" verbs="enterSharedScope" />
        </authorization>
      </personalization>
    </webParts>
  </system.web>
</configuration>


为了授权管理员改变共享范围,需要覆盖缺省配置。如下:
授权用户和角色以后,有两种方式展示个性化:初始化WebPartPersonalization类。如要缺省为共享范围,WebPartManager应为下面样式。

<asp:WebPartManager
  id="WebPartManager1"
  Personalization-InitialScope="Shared"
  Runat="server" />
如果用户授权进入共享范围,也可以改变共享范围。如果没有授权改变共享范围,页面只能保持用户范围的个性化。
页面已经Page PreInit时,就不能更改初始范围。 要改变只能用ToggleScope()方法,这是一种非常好的方法,只有把个性化管理器加进webpart,就可以在用户范围和共享范围之间切换。
二、配置个性化数据库
缺省情况下,个性化数据库存放在APP_Data 目录下一个名为ASPNETDB.mdf的SQL Server 2005 Express 数据库里。如果要采用其他数据库(SQL Server 2000 或者 SQL Server 2005),需要做两件事。
1. 建立数据库
2、修改应用web配置文件
对于第一个可执行下面目录的程序自动安装必要的数据库。
Windows/Microsoft.NET/Framework/v2.0.xxxxx/aspnet_regsql.exe
除了aspnet_regsql.exe外,还可以在相同目录下找到下面sql脚本
InstallCommon.sql --首先运行

InstallPersonalization.sql --然后再运行。

UninstallCommon.sql --卸载InstallCommon.sql
UninstallPersonalization.sql --卸载InstallPersonalization.sql.
完成了配置个性化数据库以后,还需要让web配置文件指向新的数据库。下例中我们把个性化数据库命名为AppData放在名为DataServer服务器上。

Listing 3. Web.Config
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <connectionStrings>
    <add
      name="DataServer"
      connectionString="Server=DataServer;Trusted_Connection=true;
      Database=AppData"/>
  </connectionStrings>
  <system.web>
    <webParts>
      <personalization defaultProvider="MyPersonalizationProvider">
        <providers>
          <add
            name="MyPersonalizationProvider"
            type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider"
            connectionStringName="DataServer" />
        </providers>
        <authorization>
          <allow users="*" verbs="modifyState" />
          <allow roles="Administrators" verbs="enterSharedScope" />
        </authorization>
      </personalization>
    </webParts>
  </system.web>
</configuration>

<webParts>节下面包含<personalization>分节。defaultProvider属性指向名为定义在<providers>节里的MyPersonalizationProvider。provider使用了SqlPersonalization以及名为“DataServer”数据库连接字符串。
DataServer连接字符串定义在配置文件上部指向服务器名为DataServer,数据库名为AppData 。诚然也适用于其他数据库字符串。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值