检查umbraco用户是否可以看到发布的内容
我有检查umbraco用户是否可以看到发布的内容,umbraco,umbraco7,Umbraco,Umbraco7,我有Umbraco用户Id(不是当前用户Id)和发布的内容Id,如何检查用户是否能够看到此内容? 我发现这个api: Access.HasAccess(int documentId, memberId) 但它被标记为过时。实现此目的的任何其他方法?对于当前成员,您应该使用UmbracoHelper.MemberHasAccess方法 因此,作为一个示例,您可以使用类似的方式显示该成员有权访问的当前页面的子项: var children = Model.Content.Children.W
Umbraco
用户Id(不是当前用户Id)和发布的内容Id,如何检查用户是否能够看到此内容?
我发现这个api:
Access.HasAccess(int documentId, memberId)
但它被标记为过时。实现此目的的任何其他方法?对于当前成员,您应该使用UmbracoHelper.MemberHasAccess方法 因此,作为一个示例,您可以使用类似的方式显示该成员有权访问的当前页面的子项:
var children = Model.Content.Children.Where(c => Umbraco.MemberHasAccess(c.Path));
但是您说这不是针对当前成员的,所以您可以扩展问题以了解您正在尝试做什么吗?对于当前成员,您应该使用UmbracoHelper.MemberHasAccess方法 因此,作为一个示例,您可以使用类似的方式显示该成员有权访问的当前页面的子项:
var children = Model.Content.Children.Where(c => Umbraco.MemberHasAccess(c.Path));
但是你说这不是为当前会员准备的,所以你能扩展你的问题来理解你想做什么吗?我用这个:
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
}
我用的是:
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
}
您看过ApplicationContext.Current.Services.PublicAccessService.HasAccess了吗(还记得“使用Umbraco.Core.Services”吗)您看过ApplicationContext.Current.Services.PublicAccessService.HasAccess了吗(还记得“使用Umbraco.Core.Services”)