SharePoint - FeatureActivated事件期间的“连接字符串”对话框

时间:2008-08-12 13:57:04

标签: sharepoint connection-string

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

不幸的是,无法切换到可以通过功能激活过程获取用户的屏幕。几句意见:

  1. 我假设每个安装的连接字符串都不同,因此您无法直接将其包含在解决方案中。
  2. 我假设你无法在安装过程中以编程方式构造它。
  3. 因此,您需要一些方法来获取用户输入。以下是几个选项:

    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 Property包中或Web.Config中。我尽量避免在可能的情况下使用Web.Config,但是如果你确实希望使用这条路线,那么请确保你使用SPWebConfigModification类(阅读这篇伟大的博客:http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32
    3. 最后,我经常使用的一种技术是将配置信息存储在SharePoint列表中。 Chris O'Brien在这里有一个很好的框架:http://www.codeplex.com/SPConfigStore
    4. 希望有所帮助, 丹尼尔

答案 1 :(得分:0)

听起来不错。我会看看这些可能的解决方案。

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

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

While searching for a solution I did stumble across another method.

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

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

谢谢你, 基思