代码之家  ›  专栏  ›  技术社区  ›  Keith Sirmons

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

  •  2
  • Keith Sirmons  · 技术社区  · 17 年前

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

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

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

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

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

    2 回复  |  直到 7 年前
        1
  •  1
  •   Sinister Beard    7 年前

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

    1. 我假设每个安装的连接字符串都是不同的,所以您无法将其直接包含在解决方案中。
    2. 我假设您不能在安装过程中以编程方式构造这个。

    因此,您需要某种方法来获取用户输入。以下是几个选项:

    1. 它可能是一个Web部件属性,但这意味着每次添加Web部件时都要对其进行设置,然后需要单独保留这些设置。
    2. 您可以构建自己的布局设置屏幕(好文章: 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/Posts/Post.aspx?ID=32 )
    3. 最后,我经常使用的一种技术是在SharePoint列表中存储配置信息。Chris O'Brien有一个很好的框架: http://www.codeplex.com/SPConfigStore

    希望能有所帮助, 丹尼尔

        2
  •  0
  •   NoNaMe    12 年前

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

    我认为1不起作用,因为我在一个解决方案中部署了多个Web部件,所有这些解决方案都使用相同的连接字符串。

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

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

    如果你仔细研究他们的代码,我会发现他们已经创建了一个安装程序,它接受特定于应用程序的值,将这些值添加到featureTemplate.xml文件中,并将它们传递给receiver中的spFeatureReceiverProperties对象。

    我准备开始解决这个方法,但我认为3会更好。

    谢谢您, 基思