我有Umbraco
用户ID(不是当前用户ID)和已发布的内容ID,如何检查该用户是否能够看到此内容?
我找到了这个api:
Access.HasAccess(int documentId, memberId)
但它标志着已经过时了。还有其他方法可以达到这个目的吗?
答案 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
}