2

有谁知道在激活或安装共享点功能时是否可以向用户/管理员显示提示?

我正在编写一个自定义 webpart,它正在连接到一个单独的数据库,我想允许管理员在安装 .wsp 文件或激活该功能时选择或输入连接字符串。

我正在查看 FeatureActivated 事件,并考虑使用 SPWebConfigModification 类将连接字符串实际写入场中的 web.config 文件。

我不想手动编辑 web.configs 或将字符串硬编码到 DLL 中。

如果您有其他方法来处理 sharepoint 中的连接字符串,我也会对它们感兴趣。

4

2 回答 2

1

不幸的是,无法切换到可以通过功能激活过程获取用户的屏幕。给你几条评论:

  1. 我假设每次安装的连接字符串都会有所不同,因此您无法将其直接包含在解决方案中。
  2. 我假设您无法在安装过程中以编程方式构建它。

因此,您需要某种方式来获取用户输入。这里有几个选项:

  1. 它可能是一个 Web 部件属性,但这意味着每次添加 Web 部件时都要设置它,然后您需要单独维护这些设置。
  2. 您可以构建自己的 _layouts 设置屏幕(好帖子:http: //community.zevenseas.com/Blogs/Robin/archive/2008/03/17/lcm-creating-custom-application-page-and-using-the -propertybag-more-detailed.aspx ),然后用户可以从那里维护属性,将其存储在 Web 属性包或 Web.Config 中。我尽量避免使用 Web.Config,但如果你确实想走这条路,那么请确保你使用 SPWebConfigModification 类(阅读这个很棒的博客:http ://www.crsw.com/mark/Lists/帖子/Post.aspx?ID=32 )
  3. 最后,我经常使用的一种技术是将配置信息存储在 SharePoint 列表中。Chris O'Brien 在这里有一个很棒的框架:http: //www.codeplex.com/SPConfigStore

希望有帮助,丹尼尔

于 2008-08-13T12:50:32.333 回答
0

听起来不错。我将研究这些可能的解决方案。

我认为 #1 不会起作用,因为我在一个解决方案中部署了多个 webpart,它们都使用相同的 connectionString。

#3 听起来像是一个非常干净的解决方案。我看到配置项被缓存,所以看起来如果我需要存储连接字符串,每次我需要该字符串时都不会被 SP 查找击中。

在寻找解决方案时,我确实偶然发现了另一种方法。

如果您深入研究他们的代码,我看起来他们已经创建了一个接受应用程序特定值的安装程序,将这些值添加到 FeatureTemplate.xml 文件中并将它们传递给接收器中的 SPFeatureReceiverProperties 对象。

我正要开始处理这种方法,但我认为#3 会更好。

谢谢你,基思

于 2008-08-13T13:53:19.977 回答