我有一个项目,我有一个用户名(但不是密码),需要检查用户是否可以访问项目。这必须在项目级别而不是Web级别,因为权限可能不会被继承。
我知道SPWeb.CheckPermissions,但认为它只会测试用户是否可以访问实际的spweb。
由于
==编辑==
我能够通过这样做实现这个目标
var item = properties.ListItem;
SPUser user = SPContext.Current.Web.EnsureUser(@"domain\logonname");
item.DoesUserHavePermissions(user, SPBasePermissions.OpenItems);
我的问题仍有一点。这可以通过网络服务API进行吗?
答案 0 :(得分:0)
使用SharePoint 2013,您可以使用REST API查询静态方法。一个有趣的方法是SPUtility.GetPrincipalsInGroup
。当然你不能要求“有开放许可”,但你可以要求一个特定的小组。要查询静态方法,请参阅:Programming using the SharePoint 2013 REST service,查找将静态方法和属性指定为REST服务URI 部分。当然,您必须使用经过身份验证的用户调用Web Service,并且需要启用该组以供所有用户枚举。