积极答复者
求助,事件处理程序中修改文件权限的问题

问题
-
我想要写一个事件处理程序,实现在用户上传文件后,自动将文件权限继承解除,然后重新设置为管理员完全控制,作者只读。写的代码如下,但是在运行中发现,捕获到异常错误提示访问被拒绝。我查看过myWeb.CurrentUser.LoginName,值为SharePoint//System。请问哪里出错了?
namespace PermissionDemo
{
public class PermissionDemoHandlerPItemEventReceiver
{
//将添加后的文件权限修改为管理员完全控制,所有者只读,其他用户无权限
public override void ItemCheckedIn(SPItemEventProperties properties)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using ( SPSite mySite = new SPSite(properties.SiteId))
{
using (SPWeb myWeb = mySite.OpenWeb(properties.OpenWeb().ID))
{
try
{
SPList myList = myWeb.Lists[properties.ListId];
SPListItem myItem = properties.ListItem;
myItem.BreakRoleInheritance(false);
SPUser cUser = myWeb.Users.GetByID(properties.CurrentUserId);
SPRoleAssignment ra = new SPRoleAssignment(myWeb.EnsureUser(cUser.LoginName));
ra.RoleDefinitionBindings.Add(myWeb.RoleDefinitions["读取"]);
myItem.RoleAssignments.Add(ra);
}
catch (Exception ee)
{
}
}
}
}
);
}
}
}