1

我有一个项目,我有一个用户名(但没有密码),需要检查用户是否可以访问项目。这必须在项目级别而不是 Web 级别,因为权限可能不会被继承。

我知道 SPWeb.CheckPermissions 但认为它只会测试用户是否可以访问实际的 spweb。

谢谢

== 编辑 ==

我能够通过这样做来实现这一点

var item = properties.ListItem;
SPUser user = SPContext.Current.Web.EnsureUser(@"domain\logonname");
item.DoesUserHavePermissions(user, SPBasePermissions.OpenItems);

我的问题仍然有点。这可以通过网络服务 api 来实现吗?

4

1 回答 1

0

借助 SharePoint 2013,您可以使用 REST API 来查询静态方法。一个有趣的方法是SPUtility.GetPrincipalsInGroup. 当然你不能要求“有开放的权限”,但你可以要求一个特定的组。要查询静态方法,请参阅:使用 SharePoint 2013 REST 服务进行编程,查找将静态方法和属性指定为 REST 服务 URI部分。当然,您必须使用经过身份验证的用户调用 Web 服务,并且需要启用该组才能被所有用户枚举。

于 2013-03-01T16:02:17.447 回答