3-3 SharePoint 开发特殊类型事件接收器

添加功能,用于承载激活,组添加人员事件接收器

 

添加类ERForGroup类,处理组人员添加事件

 

添加列表,用于自动添加数据 GroupUserAddedList

 

添加功能的事件接收器

 

测试,添加人员给组

 

查询显示

 

 

using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ljzCustomEventReceiver
{
    class ERForGrop : SPSecurityEventReceiver
    {
        public override void GroupUserAdded(SPSecurityEventProperties properties)
        {
            SPList list = properties.Web.Lists.TryGetList("GroupUserAddedList");
            SPListItem item = list.Items.Add();
            item["UserName"] = properties.Web.AllUsers.GetByID(properties.GroupUserId);
            item["GroupName"] = properties.Web.Groups.GetByID(properties.GroupId);
            item["Operation"] = "Add";
            item.Update();
            //base.GroupUserAdded(properties);
        }

    }
}
using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;

namespace ljzCustomEventReceiver.Features.ERForGrop
{
    /// <summary>
    /// 此类用于处理在激活、停用、安装、卸载和升级功能的过程中引发的事件。
    /// </summary>
    /// <remarks>
    /// 附加到此类的 GUID 可能会在打包期间使用,不应进行修改。
    /// </remarks>

    [Guid("90b6963f-1a19-4095-b47a-4f2ddbddad5d")]
    public class ERForGropEventReceiver : SPFeatureReceiver
    {
        // 取消对以下方法的注释,以便处理激活某个功能后引发的事件。

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPWeb web = properties.Feature.Parent as SPWeb;
            SPEventReceiverDefinition ERForSPGroupDemo = web.EventReceivers.Add();
            ERForSPGroupDemo.Name = "ERForSPGroupDemo";
            ERForSPGroupDemo.Type = SPEventReceiverType.GroupUserAdded;
            ERForSPGroupDemo.Assembly = "ljzCustomEventReceiver, Version=1.0.0.0, Culture=neutral, PublicKeyToken=aaa14757f555b8b0";
            ERForSPGroupDemo.Class = "ljzCustomEventReceiver.ERForGrop";
            ERForSPGroupDemo.Update();
        }


        // 取消对以下方法的注释,以便处理在停用某个功能前引发的事件。

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPWeb web = properties.Feature.Parent as SPWeb;
            SPEventReceiverDefinitionCollection ERs = web.EventReceivers;
            for (int i = 0; i < ERs.Count; i++)
            {
                if (ERs[i].Name == "ERForSPGroupDemo")
                    ERs[i].Delete();
            }
            web.Update();

        }


        // 取消对以下方法的注释,以便处理在安装某个功能后引发的事件。

        //public override void FeatureInstalled(SPFeatureReceiverProperties properties)
        //{
        //}


        // 取消对以下方法的注释,以便处理在卸载某个功能前引发的事件。

        //public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
        //{
        //}

        // 取消对以下方法的注释,以便处理在升级某个功能时引发的事件。

        //public override void FeatureUpgrading(SPFeatureReceiverProperties properties, string upgradeActionName, System.Collections.Generic.IDictionary<string, string> parameters)
        //{
        //}
    }
}

 

posted @ 2020-05-27 16:17  七秒钟得记忆  阅读(104)  评论(0)    收藏  举报