博客地址 http://blog.csdn.net/foxdave

SharePoint启用Session可以使用Powershell,戳这里;可以修改webconfig。

本篇叙述的重点是通过feature去控制启用session和关闭session。

新建一个空的SharePoint项目,编写FeatureEventHandler的FeatureActivated和FeatureDeactivating的处理逻辑

  1. public override void FeatureActivated(SPFeatureReceiverProperties properties)
  2. {
  3. SPWebApplication application = (SPWebApplication)properties.Feature.Parent;
  4. try
  5. {
  6. Config.Update(application);
  7. application.Update();
  8. application.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
  9. }
  10. catch
  11. {
  12. Config.Restore(application);
  13. }
  14. }
  15.  
  16. public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
  17. {
  18. SPWebApplication application = (SPWebApplication)properties.Feature.Parent;
  19. try
  20. {
  21. Config.Restore(application);
  22. application.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
  23. }
  24. catch
  25. {
  26. }
  27. }

这里Config是关于Session的处理类,因为启用和禁用Session本质上还是修改IIS网站的配置,所以获取WebApplication对象,通过代码修改webconfig内容。

Config类的代码如下

  1. class Config
  2. {
  3. private static void ExecUpdate(SPWebApplication webApp, string name, string path, string value, Microsoft.SharePoint.Administration.SPWebConfigModification.SPWebConfigModificationType type)
  4. {
  5. SPWebConfigModification modification = new SPWebConfigModification();
  6. modification.Name = name;
  7. modification.Path = path;
  8. modification.Value = value;
  9. modification.Sequence = 0;
  10. modification.Type = type;
  11. modification.Owner = "SP_MIP_Team_EnableSession";
  12. SPWebConfigModification item = modification;
  13. webApp.WebConfigModifications.Add(item);
  14. }
  15.  
  16. public static void Restore(SPWebApplication webApp)
  17. {
  18. webApp.Update();
  19. List<SPWebConfigModification> configModificationsToRemove = new List<SPWebConfigModification>();
  20. foreach (SPWebConfigModification spWebConfigModification in webApp.WebConfigModifications)
  21. {
  22. if (spWebConfigModification.Owner == "SP_MIP_Team_EnableSession")
  23. {
  24. configModificationsToRemove.Add(spWebConfigModification);
  25. }
  26. }
  27. foreach (SPWebConfigModification configModification in configModificationsToRemove)
  28. {
  29. webApp.WebConfigModifications.Remove(configModification);
  30. }
  31. webApp.Update();
  32. }
  33.  
  34. public static void Update(SPWebApplication webApp)
  35. {
  36. string name = null;
  37. string path = null;
  38. string value = null;
  39. name = "add[@name='Session'][@type='System.Web.SessionState.SessionStateModule']";
  40. path = "/configuration/system.web/httpModules";
  41. value = "<add name='Session' type='System.Web.SessionState.SessionStateModule' />";
  42. ExecUpdate(webApp, name, path, value, SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode);
  43. name = "enableSessionState";
  44. path = "/configuration/system.web/pages";
  45. value = "true";
  46. ExecUpdate(webApp, name, path, value, SPWebConfigModification.SPWebConfigModificationType.EnsureAttribute);
  47. name = "add[@name='session'][@type='System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a']";
  48. path = "/configuration/system.webServer/modules";
  49. value = "<add name='session' type='System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' />";
  50. ExecUpdate(webApp, name, path, value, SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode);
  51. }
  52.  
  53. }

这里利用SPWebApplication对象来记录WebConfigModifications,即webconfig的修改,这样做的好处是可以方便地还原通过代码修改的webconfig

SharePoint开发 - 使用Session(代码修改webconfig)的更多相关文章

  1. .net代码修改webconfig

    /// <summary> /// 写入web.config /// </summary> /// <param name="item">app ...

  2. 运行时动态修改webconfig

    网站运行时,如果直接手动修改webconfig.xml,会造成线程池重启,对于PV大的网站来说风险是很大的,并且如果有多台服务器,逐台修改也会造成数据不一致. .NET 2.0后可以通过代码修改web ...

  3. SharePoint发展 - 使用Session(代码更改webconfig)

    博客地址 http://blog.csdn.net/foxdave SharePoint启用Session能够使用Powershell,戳这里:能够改动webconfig. 本篇叙述的重点是通过fea ...

  4. 向SharePoint页面添加后台代码

    转:http://www.cnblogs.com/chenzehe/archive/2009/12/25/1631863.html 在本文中,我将跟大家一起讨论,为MOSS的页面添加服务器端代码的另一 ...

  5. SharePoint开发 - 自定义导航菜单(一)菜单声明与配置

    博客地址 http://blog.csdn.net/foxdave 本篇描述自定义sharepoint菜单的一种方式,自定义菜单适用于一些门户等需求的网站 自定义的菜单有自己的数据源,可以是数据表,可 ...

  6. 转载 SharePoint开发部署WSP解决方案包

    转载原出处: http://642197992.blog.51cto.com/319331/1582731 注:本文所讲内容以SharePoint2013版本为例,开发工具以VS2013为基础.历史版 ...

  7. 步步为营 SharePoint 开发学习笔记系列总结

    转:http://www.cnblogs.com/springyangwc/archive/2011/08/03/2126763.html 概要 为时20多天的sharepoint开发学习笔记系列终于 ...

  8. SharePoint开发

    做SharePoint开发有时候是一件比较痛苦的事情,毕竟庞大的框架总是笨重的~~ 往往如果采取传统的方式开发SharePoint的话,更改一个代码需要有以下操作: 1)更改代码 2)VS编译——&g ...

  9. Spring+SpringMVC+MyBatis整合进阶篇(四)RESTful实战(前端代码修改)

    前言 前文<RESTful API实战笔记(接口设计及Java后端实现)>中介绍了RESTful中后端开发的实现,主要是接口地址修改和返回数据的格式及规范的修改,本文则简单介绍一下,RES ...

随机推荐

  1. R统计建模与R软件

    教材目录 第一章 概率统计的基本知识 第二章 R软件的使用 第三章 数据描述性分析 第四章 参数估计 第五章 假设检验 第六章 回归分析 第七章 方差分析 第八章 应用多元分析(I) 第九章 应用多元 ...

  2. MySQL通用优化手册

    转载: MySQL通用优化手册 内容提纲 MySQL的特点: 硬件.系统优化: MySQL 配置优化: SCHEMA设计优化: SQL 优化: 其他优化. MySQL 的特点 首先,需要明确的是.想要 ...

  3. 5.3.2 Eclipse集成开发环境的使用技巧

    Eclipse具有强大的编辑.调试.编译和打包功能,本节仅讲解Eclipse中最常用的功能. 1.将程序代码和注释字体变大 (1)启动Eclipse,选择“Windows”->“Preferen ...

  4. 8个实用的页面布局和用户界面jQuery插件

    网页设计师和网页开发人员在做项目的时候可能会有一些页面的布局或者对于UI有一些特定的要求.可能一些需求不能单独使用CSS就能实现的.于是很多时候开发人员都会消耗大量的时间和精力去写一些JS来协助实现. ...

  5. bootstrap的弹出框

    data-toggle="popover";//以弹出框事件触发 data-content="弹出框中内容"; data-placement="弹出框 ...

  6. java编程思想

    Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而且在大型项目开发中也是常用的知识,既有简单的概念理 ...

  7. Farseer.Net

    Farseer.Net V0.2 ORM开源框架 目录 http://www.cnblogs.com/steden/archive/2013/01/22/2871160.html V1.0教程:htt ...

  8. css3 keyframes animation

    html,body,div,span,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,address,big,cite,code,del,em,font,img ...

  9. BZOJ2492 Revenge of Fibonacci

    首先我们高精度加法算出前10W个数... 然后把所有的前40位搞出来建成trie树,于是就变成了模板题了... 说一下...这题要是直接建出来son[tot][10]会MLE...所以...建trie ...

  10. Windows 下对目录建立软链接

    在Linux下,可以很方便的通过ln命令创建对文件和对文件夹的软链接.在Windows下,通过快捷方式,可以创建到文件和文件夹的链接,但是这软链接不是一个层面的上东西.软链接是底层文件系统层面的,而快 ...