sharepoint 2013 文档库eventhandle权限控制

记录一下如何在sharepoint server 2013文档库中,使用eventhandle控制文档库document library的条目item权限。

///<summary>

        ///正在添加项.

        ///</summary>

        publicoverride void ItemAdding(SPItemEventProperties properties)

        {

            base.ItemAdding(properties);

            SPSecurity.RunWithElevatedPrivileges(delegate(){

                if(properties.ListTitle =="文档")

                {

                    string DocIcon =System.IO.Path.GetExtension(properties.AfterUrl);

                    ArrayList al =GetExtensionByFile();

                    for (int i = 0; i <al.Count; i++)

                    {

                       if (DocIcon ==al[i].ToString())

                       {

                           properties.Cancel =true;

                           properties.ErrorMessage ="不允许上载" + DocIcon +"文件!";

                           break;

                       }

                    }

                }

            });

        }

        private ArrayList GetExtensionByFile()

        {

            ArrayList al =newArrayList();

            al.Add(".aspx");

            al.Add(".jsp");

            al.Add(".asp");

            al.Add(".exe");

            return al;

        }

       ///<summary>

        ///已添加项.

        ///</summary>

        publicoverride void ItemAdded(SPItemEventProperties properties)

        {

            base.ItemAdded(properties);

            SPSecurity.RunWithElevatedPrivileges(delegate()

            {

                if(properties.ListTitle =="共享文档1")

                {

                    SPSite site =newSPSite(properties.SiteId);

                    SPWeb web =site.OpenWeb();

                    web.AllowUnsafeUpdates = true;

                    SPList list =web.Lists[properties.ListId];

                    SPFile file =list.GetItemById(properties.ListItemId).File;

                    SPListItem item = file.Item;

                    //权限断开,并且移除掉其它权限

                    if(!item.HasUniqueRoleAssignments)

                    {

                       item.BreakRoleInheritance(false);

                    }

                    //添加用户权限

                    SPUser CurrentUser =web.EnsureUser(properties.UserLoginName);

                    SPRoleAssignment MyRoleAssignment =newSPRoleAssignment(CurrentUser);

                   MyRoleAssignment.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.WebDesigner));

                   item.RoleAssignments.Add(MyRoleAssignment);

 

                    CurrentUser =web.EnsureUser("kw\\cxx");

                    MyRoleAssignment = newSPRoleAssignment(CurrentUser);

                   MyRoleAssignment.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.WebDesigner));

                   item.RoleAssignments.Add(MyRoleAssignment);

                    item.Update();

                }

            });

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值