FeatureActivated事件期间的" SharePoint-连接字符串"对话框
时间:2020-03-05 18:39:11 来源:igfitidea点击:
有谁知道在激活或者安装共享点功能时是否可以向用户/管理员显示提示?
我正在编写一个自定义Webpart,它正在连接到单独的数据库,我想允许管理员在安装.wsp文件或者激活功能时选择或者键入连接字符串。
我正在查看FeatureActivated事件,并考虑使用SPWebConfigModification类将连接字符串实际写入服务器场中的web.config文件。
我不想手动编辑web.configs或者将字符串硬编码到DLL中。
如果我们还有其他方法来处理sharepoint中的连接字符串,我也将对它们感兴趣。
解决方案
回答
不幸的是,无法切换到可以通过功能激活过程吸引用户的屏幕。对几点评论:
- 我假设每次安装的连接字符串都不同,所以我们无法直接将其包括在解决方案中。
- 我假设我们无法在安装过程中以编程方式构造它。
因此,我们需要某种方式来获取用户输入。这里有几个选择:
- 它可能是Web部件属性,尽管这意味着每次添加Web部件时都要对其进行设置,然后我们需要分别进行设置。
- 我们可以构建自己的_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/帖子/Post.aspx?ID=32)
- 最后,我经常使用的一种技术是将配置信息存储在SharePoint列表中。克里斯·奥布莱恩(Chris O'Brien)在这里有一个很好的框架:http://www.codeplex.com/SPConfigStore
希望能有所帮助,
丹尼尔
回答
听起来不错。我将研究这些可能的解决方案。
我不认为#1会起作用,因为我在一个都使用相同的connectionString的解决方案中部署了多个Web部件。
#3听起来很干净。我看到配置项已缓存,因此看起来好像我需要存储连接字符串,每次需要该字符串时,都不会被SP查找。
在寻找解决方案时,我确实偶然发现了另一种方法。
如果我们深入研究他们的代码,我看起来他们已经创建了一个接受应用程序特定值的安装程序,将这些值添加到FeatureTemplate.xml文件中,并将它们传递给Reciever中的SPFeatureReceiverProperties对象。
我将要开始处理此方法,但我认为#3会更好。
谢谢,
基思