检查umbraco用户是否可以查看已发布的内容

时间:2017-11-10 09:37:46

标签: umbraco umbraco7

我有Umbraco用户ID(不是当前用户ID)和已发布的内容ID,如何检查该用户是否能够看到此内容?   我找到了这个api:

  Access.HasAccess(int documentId, memberId)

但它标志着已经过时了。还有其他方法可以达到这个目的吗?

2 个答案:

答案 0 :(得分:0)

对于当前成员,您应该使用UmbracoHelper.MemberHasAccess方法

https://our.umbraco.org/documentation/reference/querying/umbracohelper/

举个例子,你可以这样显示成员有权访问的当前页面的子节点:

var children = Model.Content.Children.Where(c => Umbraco.MemberHasAccess(c.Path));

但是你说这不适合当前的会员,所以你可以向你提出问题,以了解你想要做什么吗?

答案 1 :(得分:0)

我正在使用它:

int memberId;
int nodeId;


var publicAccessService  = ApplicationContext.Current.Services.PublicAccessService;
var contentService = ApplicationContext.Current.Services.ContentService;
var memberService = ApplicationContext.Current.Services.MemberService;

var member = memberService.GetById(memberId);
var rolesList = Roles.GetRolesForUser(member.Username);


if(publicAccessService.HasAccess(nodeId, contentService, rolesList))
{
    // has access
}
{
    // does NOT have access
}