在FeatureActivated事件期间,SharePoint - 连接字符串对话框

问题描述:

有没有人知道在激活或安装SharePoint功能时是否可以向用户/管理员显示提示?在FeatureActivated事件期间,SharePoint - 连接字符串对话框

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

我找了FeatureActivated事件,并使用SPWebConfigModification类实际编写连接字符串场中的web.config文件中的思维里。

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

如果您有其他方法可以处理Sharepoint内的连接字符串,我也会对它们感兴趣。

不幸的是,没有办法切换到可以通过功能激活过程获取用户的屏幕。几条评论对您有所帮助:

  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.Config内。我尽量避免使用Web.Config,但是如果你确实希望走这条路,那么请确保你使用了SPWebConfigModification类(阅读这个伟大的博客:http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32
  3. 最后,我经常使用的一种技术是存储SharePoint列表中的配置信息。欧博有在这里一个伟大的框架:http://www.codeplex.com/SPConfigStore

希望帮助, 丹尼尔

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

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

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

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

如果你周围挖他们的代码,我看起来像他们创造接受应用程序的特定值,增加值到FeatureTemplate.xml文件,并将它们传递到SPFeatureReceiverProperties在Reciever对象的安装程序。

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

谢谢, Keith