SharePoint发展 - 使用Session(代码更改webconfig)
博客地址 http://blog.csdn.net/foxdave
SharePoint启用Session能够使用Powershell,戳这里;能够改动webconfig。
本篇叙述的重点是通过feature去控制启用session和关闭session。
新建一个空的SharePoint项目,编写FeatureEventHandler的FeatureActivated和FeatureDeactivating的处理逻辑
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWebApplication application = (SPWebApplication)properties.Feature.Parent;
try
{
Config.Update(application);
application.Update();
application.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
}
catch
{
Config.Restore(application);
}
} public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPWebApplication application = (SPWebApplication)properties.Feature.Parent;
try
{
Config.Restore(application);
application.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
}
catch
{
}
}
这里Config是关于Session的处理类。由于启用和禁用Session本质上还是改动IIS站点的配置。所以获取WebApplication对象。通过代码改动webconfig内容。
Config类的代码例如以下
class Config
{
private static void ExecUpdate(SPWebApplication webApp, string name, string path, string value, Microsoft.SharePoint.Administration.SPWebConfigModification.SPWebConfigModificationType type)
{
SPWebConfigModification modification = new SPWebConfigModification();
modification.Name = name;
modification.Path = path;
modification.Value = value;
modification.Sequence = 0;
modification.Type = type;
modification.Owner = "SP_MIP_Team_EnableSession";
SPWebConfigModification item = modification;
webApp.WebConfigModifications.Add(item);
} public static void Restore(SPWebApplication webApp)
{
webApp.Update();
List<SPWebConfigModification> configModificationsToRemove = new List<SPWebConfigModification>();
foreach (SPWebConfigModification spWebConfigModification in webApp.WebConfigModifications)
{
if (spWebConfigModification.Owner == "SP_MIP_Team_EnableSession")
{
configModificationsToRemove.Add(spWebConfigModification);
}
}
foreach (SPWebConfigModification configModification in configModificationsToRemove)
{
webApp.WebConfigModifications.Remove(configModification);
}
webApp.Update();
} public static void Update(SPWebApplication webApp)
{
string name = null;
string path = null;
string value = null;
name = "add[@name='Session'][@type='System.Web.SessionState.SessionStateModule']";
path = "/configuration/system.web/httpModules";
value = "<add name='Session' type='System.Web.SessionState.SessionStateModule' />";
ExecUpdate(webApp, name, path, value, SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode);
name = "enableSessionState";
path = "/configuration/system.web/pages";
value = "true";
ExecUpdate(webApp, name, path, value, SPWebConfigModification.SPWebConfigModificationType.EnsureAttribute);
name = "add[@name='session'][@type='System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a']";
path = "/configuration/system.webServer/modules";
value = "<add name='session' type='System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' />";
ExecUpdate(webApp, name, path, value, SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode);
} }
这里利用SPWebApplication对象来记录WebConfigModifications,即webconfig变化,这样做的优点是能够很容易地通过代码更改恢复的能力webconfig
版权声明:本文博客原创文章。博客,未经同意,不得转载。
SharePoint发展 - 使用Session(代码更改webconfig)的更多相关文章
- SharePoint开发 - 使用Session(代码修改webconfig)
博客地址 http://blog.csdn.net/foxdave SharePoint启用Session可以使用Powershell,戳这里:可以修改webconfig. 本篇叙述的重点是通过fea ...
- 无废话SharePoint入门教程二[SharePoint发展、工具及术语]
一.前言 1.由于上一篇文章的标题命名失误,此篇标题写给百度搜索”什么是SharePoint”. 2.关于什么是SharePoint,请参见本人的第一篇文章:http://www.cnblogs.co ...
- [转]无废话SharePoint入门教程二[SharePoint发展、工具及术语]
本文转自:http://www.cnblogs.com/iamlilinfeng/p/3186919.html 一.前言 1.由于上一篇文章的标题命名失误,此篇标题写给百度搜索”什么是SharePoi ...
- 向SharePoint页面添加后台代码
转:http://www.cnblogs.com/chenzehe/archive/2009/12/25/1631863.html 在本文中,我将跟大家一起讨论,为MOSS的页面添加服务器端代码的另一 ...
- SharePoint webpart中悬浮窗口的webconfig路径
SharePoint webpart中悬浮窗口的webconfig路径在.../_layouts/15/下.
- Java代码更改shape和selector文件的颜色值
Android里面经常会使用shape或者selector来定制一些View的背景.那么如果想要动态更改shape或者seletor文件中的颜色值,该怎么处理呢? 一.Java代码更改shape的颜色 ...
- [AX2012]代码更改默认财务维度
在前文(http://www.cnblogs.com/duanshuiliu/p/3243048.html)最后演示了如何使用代码更改默认财务维度,那段代码模拟了创建各数据表记录的过程,实际上AX提供 ...
- flask调试代码更改、模板更改后立即生效
1.app.DEBUG=True时,代码更改后立即生效 2.APP.jinja_env.auto_reload = True时,模板修改后立即生效,无需重启 参考:https://stackoverf ...
- 001-脚手架发展,基础代码结构+mybatis代码生成
一.概述 脚手架是为了保证各施工过程顺利进行而搭设的工作平台. 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具. java变成中,架构师搭建的代码结构你到处拷 ...
随机推荐
- MFC的消息反射机制
1.消息反射解释: 父窗口将子窗口发给它的通知消息,首先反射回子窗口进行处理(即给子窗口一个机会,让子窗口处理此消息),这样通知消息就有机会能被子窗口自身进行处理. 2.MFC中引入消息反射的原因: ...
- php运行
运行命令: $php 1.php php教程: http://www.w3school.com.cn/php/php_variables.asp
- OCM读书笔记(2) - PL/SQL 基础
1. % type 用法,提取% type所在字段的类型 declare myid dept.deptno % type; myname dept.dname % type;begin ...
- CF 327D - Block Tower 数学题 DFS 初看很难,想通了就感觉很简单
D. Block Tower time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- 王立平--android中的anim(动画)
简单有用步骤: 1.新建anim目录. 2.在anim下新建xml文件, 3.在xml下编写自己须要动画. 简单样例: 给Imageview加入动画 public class MainActivity ...
- 与众不同 windows phone (33) - Communication(通信)之源特定组播 SSM(Source Specific Multicast)
原文:与众不同 windows phone (33) - Communication(通信)之源特定组播 SSM(Source Specific Multicast) [索引页][源码下载] 与众不同 ...
- java 显示目录下全部文件
package gao.org; import java.awt.HeadlessException; import java.io.File; import javax.swing.JFileCho ...
- 怎么获取Spring的ApplicationContext
在 WEB 开发中,可能会非常少须要显示的获得 ApplicationContext 来得到由 Spring 进行管理的某些 Bean, 今天我就遇到了,在这里和大家分享一下, WEB 开发中,怎么获 ...
- GMM的EM算法
在聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证明 ...
- VSTO 学习笔记(十三)谈谈VSTO项目的部署
原文:VSTO 学习笔记(十三)谈谈VSTO项目的部署 一般客户计算机专业水平不高,但是有一些Office水平相当了得,尤其对Excel的操作非常熟练.因此如果能将产品的一些功能集成在Office中, ...