3

我在客户的 DotNetNuke 网站上远程工作,扩展现有的 HTML 模板。客户要求在审核之前必须隐藏这些新内容。

有没有办法可以隐藏模板的部分 HTML 并只向管理员显示?

我理想地寻找这样的东西:

<div>
    <% Admin Only %>
        <p>Only administrators can see this!</p>
    <% End Admin Only %>
    <p>Everyone can see this</p>
</div>

(我对 ASP.NET 不是很熟悉,所以我不确定 <% %> 表示法是什么。)

这可能吗?

4

2 回答 2

7

创建一个方法并使用 ASP.NET 内联表达式调用此方法,如下所示。

IF语言是VB

<script runat="server">
    Public Function IsUserAdmin() As Boolean
        Dim uinfo As DotNetNuke.Entities.Users.UserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo()
        If uinfo.UserID <> -1 Then
            If uinfo.IsInRole(DotNetNuke.Entities.Portals.PortalSettings.Current.AdministratorRoleName) Then
                Return True
            Else
                Return False
            End If
        Else
            Return False
        End If

    End Function
</script>

和 ASP.NET 内联表达式是

<%  If IsUserAdmin() Then%>
       <p>Only administrators can see this!</p>
    <%  End If%>

如果语言是C#

<script runat="server">
    public bool IsUserAdmin()
    {
        DotNetNuke.Entities.Users.UserInfo uinfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();
        if (uinfo.UserID != -1)
        {
            if (uinfo.IsInRole(DotNetNuke.Entities.Portals.PortalSettings.Current.AdministratorRoleName))
                return true;
            else
                return false;
        }
        else
        {
            return false;
        }

    }
</script>

和 ASP.NET 内联表达式是

<% if (IsUserAdmin()) %>
    <%
       { %>
       <p>Only administrators can see this!</p>
    <% } %>
于 2013-04-12T04:02:20.250 回答
1

试试这个,在必要时替换用于确定角色成员资格和是否审查内容的代码:

<div>
    <% if (Page.User.IsInRole("administrator") || objContent.IsReviewed)
     {%>
        <p>Only administrators can see this!</p>
    <% }%>
    <p>Everyone can see this</p>
</div>

实际上,DNN 是 VB 对吧?如果是这样:

<div>
    <% If Page.User.IsInRole("administrator") Or objContent.IsReviewed Then%>
        <p>Only administrators can see this!</p>
    <% End If%>
    <p>Everyone can see this</p>
</div>
于 2013-04-11T10:37:42.743 回答