gpt4 book ai didi

Umbraco 5 询问用户是否有节点权限

转载 作者:行者123 更新时间:2023-12-04 18:24:07 28 4
gpt4 key购买 nike

我正在使用 Umbraco 5.1 beta。在互联网上(此信息来自以前的版本,找不到最近的文档)我发现我可以询问一个节点,如果用户有访问权限。这样,我想建立我的菜单。问题是,我无法让它工作,HasAccess 和 IsProtected 属性不起作用。我究竟做错了什么?或者它在新版本的 Umbraco 中的工作方式有所不同? (我也尝试了它作为方法,仍然没有结果)

这是我现在使用的代码:

@inherits RenderViewPage
@using Umbraco.Cms.Web;

@{
var Homepage = @DynamicModel;
while (Homepage.ContentType.Alias != "homePage")
{
Homepage = Homepage.Parent;
}
}
<ul>
<li><a href="@Homepage.Url">Home</a></li>
@foreach (var item in Homepage.Children) {
if(!item.IsProtected || (item.IsProtected && item.HasAccess)) {
if(@item.CurrentTemplate != null) {
var childName = item.Name ?? "(No name yet)";
<li><a href="@item.Url">@childName </a></li>
}
}
}
</ul>

最佳答案

如果您只是想抑制用户无法访问的节点。然后您可以使用 WhereCanAccess() 方法。

示例:(这将隐藏用户无权访问的所有子节点)

@inherits RenderViewPage
@using Umbraco.Cms.Web;

@{
var Homepage = @DynamicModel;
while (Homepage.ContentType.Alias != "homePage")
{
Homepage = Homepage.Parent;
}
}
<ul>
<li><a href="@Homepage.Url">Home</a></li>
@foreach (var item in Homepage.Children.WhereCanAccess())
{
if(@item.CurrentTemplate != null)
{
var childName = item.Name ?? "(No name yet)";
<li><a href="@item.Url">@childName </a></li>
}
}
</ul>

尝试查找节点 IsProtected 是否似乎更复杂(尽管只有几行代码。好吧,无论如何我发现找到这样做的唯一方法!)

示例:(这只是在 protected 菜单项名称旁边放了一个 *)
@inherits RenderViewPage
@using Umbraco.Cms.Web;

@{
var Homepage = @DynamicModel;
while (Homepage.ContentType.Alias != "homePage")
{
Homepage = Homepage.Parent;
}

var appContext = DependencyResolver.Current.GetService<IUmbracoApplicationContext>();
}
<ul>
<li><a href="@Homepage.Url">Home</a></li>
@foreach (var item in Homepage.Children)
{
var isProtected = appContext.Security.PublicAccess.IsProtected(item.Id);

if (@item.CurrentTemplate != null)
{
var childName = item.Name ?? "(No name yet)";
childName = (isProtected) ? "* " + childName : childName;
<li><a href="@item.Url">@childName </a></li>
}
}
</ul>

关于Umbraco 5 询问用户是否有节点权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com