sharepoint 事件接收器ed方法获取HttpContext

前两天在做sharepoint 列表评分开发时候遇到一个小问题:

SharePoint服务器端对象模型中的SocialRatingManager类可以用来进行评分相关的操作,但创建这个类的实例需要HttpContext对象,而ItemUpdated Event无法获取到HttpContext,因为此时用户访问已经结束

The HttpContext.Current is only available within the constructor of your event receiver when handling synchronous events like ItemAdding, ItemUpdating.

这时候我们该如何做呢?于是乎很多人提出了解决办法:

  1. 尝试使用ItemUpdating Event,在构造方法中把HttpContext.Current传递给字段,然后在事件响应方法中使用。
  2. 仍使用ItemUpdated Event,想办法构造HttpContext,下面两个链接分别在SharePoint 2010、2013中使用了相同的方法构造HttpContext

http://www.sharepointpals.com/post/Programmatically-Manage-List-Items-Rating-with-Social-Rating-Manager-in-SharePoint-2013

https://pholpar.wordpress.com/2011/02/16/how-we-can-set-rating-in-the-name-of-other-users-from-code/

  3. 完全模仿第一个链接的做法,开发一个自定义WCF部署在SharePoint中,SharePoint相关应用程序的方法调用它,在自定义WCF中完成评分

我试了一下第一种方法可行,

步骤一,设置ed事件为同步事件

步骤二,在ing方法中获取HttpContext,用静态变量存起来

这样就可以拿到HttpContext

如果博友想到更好的办法,发出来共勉

时间: 2024-10-14 05:37:15

sharepoint 事件接收器ed方法获取HttpContext的相关文章

SharePoint事件接收器

本篇是对SharePint事件接收器做一个简单介绍,对此有编程需要的工程师可以查看此篇. 概念 事件接收器编程,是SharePoint工程师必学的一项技术,因为他功能强大而且常用.虽然编写过程并不复杂,但还是困扰了一些人的编程思路.在此讲述这方面的知识,帮助大家解决这方面的编程基础. 说明:以下过程以SharePoint2013开发环境VS2013为IDE编程工具进行讲解.历史版本编程方式与此版本有所不同,但概念和编程思想一致. 有五种类型的事件接收器: 列表事件,SPListEventRece

sharepoint事件接受器

Sharepoint事件接收器 简介 Sharepoint事件接收器,程序员可以通过事件接受器将自己的代码注册进去.当事件发生时注册的方法执行.本节以sharepoint2013为例讲解sharepoint列表注册事件. 实现方法 1.  新建事件触发器. 右击项目------选择新建-----选择事件接受器如图 2.  选择事件接收器 用户可以选择哪种类型的事件接受器.哪像因为事件源.处理那些事件.处理那些事件及为处理那些事件是触发.这里选择列表事件事件源为图片库,处理事件为项已添加.如图 3

sharepoint事件接受器2

Sharepoint事件接收器图片库更新事件 简介 Sharepoint中事件接受器是容易添加的,但有时需要设置几个属性.通过设置属性才能真确添加.阻止EventFiring. 需求 当上传图片成功后,自动修改图片的关键词自段.问题看来很简单其实有很多问题,首先要确保不是添加的文件夹.还有在资源管理其中添加是否能够成功. 问题 在资源管理器中总是报,图片以被锁定无法update().这是应为图片在添加是触发了默认事件需要阻止EventFiring. 代码: 1.新建一个继承事件接收器的类 ///

SharePoint 2013 图文开发系列之事件接收器

原文:SharePoint 2013 图文开发系列之事件接收器 在SharePoint的使用中,我们经常需要在完成一个动作之后,触发一个事件:比如,我们上传一个文档,但是没有标题,我们需要在上传完成之后,触发一个事件把文件名同步到标题,这就需要用到事件接收器. 此例,就是在SharePoint 2013文档库中,上传文档以后,将标题更新为文档名称的事件接收器. 1.添加新项目,选择SharePoint 2013空项目,如下图: 2.选择场解决方案,如下图: 3.添加新项,选择事件接收器,如下图:

jquery data方法获取某个元素上事件

获取某个元素上的事件,jquery的给元素绑定的事件可以用data方法取出来. 通过$(element).data("events")来获取 // 比如给一个button绑定两个click事件 $("button").click(function() { alert("1") }); $("button").click(function() { alert("2") }); // 这个时候点击该button

android开发之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)

在做一个view背景特效的时候被坐标的各个获取方法搞晕了,几篇抄来抄去的博客也没弄很清楚. 现在把整个总结一下. 其实只要把下面这张图看明白就没问题了. 涉及到的方法一共有下面几个: view获取自身坐标:getLeft(),getTop(),getRight(),getBottom() view获取自身宽高:getHeight(),getWidth() motionEvent获取坐标:getX(),getY(),getRawX(),getRawY() 首先是view的几个方法, 获取自身的宽高

可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加、删除、修改文档)

可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加.删除.修改文档) 分类: SharePoint2012-01-18 18:02 1189人阅读 评论(0) 收藏 举报 文档propertiesstringurl测试web 1.测试文档库(Doclib1.Doclib2): 增加一栏“测试栏1”. 2.新建“可视化web部件项目”,添加“解决方案资源管理器”里边选中项目右键“添加”-“新建项”-"事件接收器“ 如图操作,选择”列表项事件“和”文档库“集相应处理事件 实现

清除事件所有委托方法

问题背景 在做winform报表开发时,FastReport是一个很好的工具,它提供了一些封装好的控件,可以很方便快速的开发打印报表.其中有一个控件是用于预览报表的,所有功能按钮事件方法都是封装好的. 一般情况下这些功能按钮封装好的事件能满足基本的使用,不需要写多余的代码,但是在实际使用过程中,经常会遇到一些需要保存打印记录等操作情景,原有的按钮事件无法满足,就有了需要替换掉原按钮事件调用的方法的需求. 解决方案 因为控件是封装好的,无法直接知道事件具体调用哪些方法,通过 -= 的方式取消订阅事

ASP.NET中Server.MapPath方法获取网站根目录

在ASP.NET网站应用程序中,可以通过Server.MapPath方法来获取跟服务器有关的目录信息,如获取网站的根目录.获取当前代码文件所在的目录路径.获取当前代码所在路径的上级路径等.Server.MapPath获得的路径都是服务器上的物理路径,也就是常说的绝对路径,如D:\website\content这种形式.以下是一些Server.MapPath常用的获取网站目录的方法.(1)Server.MapPath("/") :获取网站的根目录(2)Server.MapPath(&qu