仅使用<%%>或等效项向管理员(没有其他人)显示.ascx模板HTML的部分内容

Jam*_*lly 3 asp.net dotnetnuke

我正在客户端的DotNetNuke网站上远程工作,扩展了现有的HTML模板.客户要求必须隐藏这些新内容,直到他们对其进行审核.

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

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

<div>
    <% Admin Only %>
        <p>Only administrators can see this!</p>
    <% End Admin Only %>
    <p>Everyone can see this</p>
</div>
Run Code Online (Sandbox Code Playgroud)

(我对ASP.NET不太熟悉,所以我不确定<%%>符号的调用方式.)

这有可能吗?

Gaj*_*dra 5

创建一个方法并使用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>
Run Code Online (Sandbox Code Playgroud)

和ASP.NET内联表达式是

<%  If IsUserAdmin() Then%>
       <p>Only administrators can see this!</p>
    <%  End If%>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

和ASP.NET内联表达式是

<% if (IsUserAdmin()) %>
    <%
       { %>
       <p>Only administrators can see this!</p>
    <% } %>
Run Code Online (Sandbox Code Playgroud)