sharepoint文档库中的项目明智权限

时间:2011-10-12 18:26:05

标签: sharepoint sharepoint-2007 share

我在sharepoint 2007中创建了一个启用电子邮件的文档库。我们的客户正在使用水晶报表并在此文档中存储报表。图书馆。我现在在该库中有大约900个文档,客户端要求我提供项目明智的权限。他们使用员工ID命名文件。他们希望这些文件能够被适当的员工和他/她的秘书看到。

任何人都可以帮我如何以编程方式实现这一目标吗?有没有正确的方法呢?

谢谢,

2 个答案:

答案 0 :(得分:0)

您可以创建一个event handler来破坏文件权限继承并更改所需的权限。

另一种选择是将文件移动到预先配置了您所需权限的文件夹(甚至是单独的文档库)。

第一个选项更容易实现,但安全管理可能变得......凌乱。

Here是一些代码,可帮助您开始破解和设置文档权限。

public string ItemPermission(string SitePath)
    {
        string ReturnVal = "";

        try
        {
            SPSite WebApp = new SPSite(SitePath);
            SPWeb Site = WebApp.OpenWeb();
            SPList list = Site.Lists["TestDocLib"];
            SPListItem item = list.Items[0];
            SPRoleDefinition RoleDefinition = Site.RoleDefinitions.GetByType(SPRoleType.Contributor);
            SPRoleAssignment RoleAssignment = new SPRoleAssignment("<domain>\\<user>", "email", "name", "notes");

            RoleAssignment.RoleDefinitionBindings.Add(RoleDefinition);

            if(!item.HasUniqueRoleAssignments)
            {
                item.BreakRoleInheritance(true);                
            }

            item.RoleAssignments.Add(RoleAssignment);
            item.Update();
        }
        catch (Exception ex)
        {
            ReturnVal += "Permission not set, reason: " + ex.Message;
        }
        return ReturnVal; 
    }

答案 1 :(得分:0)

无需编写代码,您可以为每个员工创建一个文件夹,并设置文件夹权限,只有该员工和经理才能访问。

对于经理,您仍然可以制作视图,显示所有没有文件夹的列表项。