Web services 使用Web服务将权限级别添加到sharepoint列表

Web services 使用Web服务将权限级别添加到sharepoint列表,web-services,sharepoint,permissions,list,Web Services,Sharepoint,Permissions,List,我需要向列表中添加权限级别,如:完全控制、贡献、管理层次结构、仅查看等。 我在这里看到:“,这可以使用对象模型来完成。如何使用Web服务实现同样的功能? 我尝试使用permissions.asmx web服务,它适用于其中一些提供正确掩码的服务,如1011028991用于批准,138612833用于读取,但不适用于其他服务,如管理层次结构、受限读取和任何其他用户创建的角色(权限级别)。我得到的不是正确的名称:自动生成的权限级别edda2384-2672-4e24-8f31-071d61a8c3

我需要向列表中添加权限级别,如:完全控制、贡献、管理层次结构、仅查看等。 我在这里看到:“,这可以使用对象模型来完成。如何使用Web服务实现同样的功能?

我尝试使用permissions.asmx web服务,它适用于其中一些提供正确掩码的服务,如1011028991用于批准,138612833用于读取,但不适用于其他服务,如管理层次结构、受限读取和任何其他用户创建的角色(权限级别)。我得到的不是正确的名称:自动生成的权限级别edda2384-2672-4e24-8f31-071d61a8c303

任何帮助都将不胜感激


好的,这里是一个代码示例,以获得基于此代码的掩码I


你能把代码贴在这里吗,这样可以帮助你了解出了什么问题。我添加了一个代码示例,希望有人能帮助我。谢谢
string sPermissionName = "Manage Hierarchy"; // if I use Read, Approve, Contribute, Full Control, it works!
string sListName = "testList";
string sGroupName = string.Format("{0}_ManageHierarchy", sListName);

// Create an aux group just to obtain the mask number later
using (SPUserGroup.UserGroup ug = new SPUserGroup.UserGroup())
{
    ug.Credentials = new NetworkCredential("user", "pasword");
    ug.Url = "http://testSite/_vti_bin/UserGroup.asmx";
    ug.AddGroup(sGroupName, "testDomain\\user", "user", "testDomain\\user", "Manage Hierarchy test");
    ug.AddGroupToRole(sPermissionName, sGroupName);
}

using (SPPermissions.Permissions per = new SPPermissions.Permissions())
{
    per.Credentials = new NetworkCredential("user", "password");
    per.Url = "http://testSite/_vti_bin/Permissions.asmx";

    XmlNode perms = per.GetPermissionCollection(sListName, "list");
    XmlNode n = perms.SelectSingleNode(string.Format("/*[local-name()='Permissions']/*[local-name()='Permission' " +
        "and @MemberIsUser='False' and @GroupName='{0}']", sGroupName));

    // Here we get the Mask for the role
    int iMask = int.Parse(n.Attributes["Mask"].Value);
    Console.WriteLine("The mask is:{0}", iMask); // Just to see the mask, I get 2129075183 for Manage Hierarchy

    // Here I want to add some user to the list with the specified permission level
    // But I get for example: Auto-generated Permission Level edda2384-2672-4e24-8f31-071d61a8c303 
    // Also, If later I execute the GetPermissionCollection, I see that the mask they got is: 2129075199  and not what I passed which was: 2129075183 
    per.AddPermission(sListName, "list", "testDomain\\user01", "user", iMask);
    per.AddPermission(sListName, "list", "testDomain\\user02", "user", iMask);
}