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

本文探讨了在SharePoint中实现列表项评分的挑战,特别是在ItemUpdatedEvent中无法直接获取HttpContext的问题。提出了三种解决方法:通过ItemUpdatingEvent传递HttpContext;构造HttpContext;或是开发自定义WCF服务。博主验证了第一种方法的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天在做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

 

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

 

转载于:https://www.cnblogs.com/CHANGZG/p/5445653.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值