使用ASP.NET LoginView动态显示链接

Mik*_*ole 3 asp.net loginview

我在使用LoginView时遇到了问题.有人可以告诉我是否可以在LoginView(以及如何)中执行此操作,或者是否需要使用代码隐藏.

我有两个角色 - 管理员和用户.我想根据角色动态显示链接.我会在if语句中写出我想要的东西,因为它更容易解释:

if (role = Administrator) //Display only if administrator.
   Show Hyperlink 1
   Show Hyperlink 2
else
   if (role = User) //Display only if user.
      Show Hyperlink 3
      Show Hyperlink 4
   endif
   //Display these if a user or if non-authenticated user...
   Show Hyperlink 5
   Show Hyperlink 6
   Show Hyperlink 7 
endif
Run Code Online (Sandbox Code Playgroud)

ben*_*wey 12

尝试使用该RoleGroups属性的类似的东西.您还可以为用户指定RoleGroup,但如果使用LoggedInTemplate,则对于登录的所有未在RoleGroup中具有Group的用户生效.最后,实际上没有办法像您使用Users/Anonymous描述的方案那样拥有共享模板,因此您可能需要复制.另一种可能性是您不在LoginView中包含它们并将它们显示给管理员.

<asp:LoginView runat="server" ID="LoginView">
    <AnonymousTemplate>
        <asp:HyperLink runat="server" ID="Link5" />
        <asp:HyperLink runat="server" ID="Link6" />
        <asp:HyperLink runat="server" ID="Link7" />
    </AnonymousTemplate>
    <LoggedInTemplate>
        <asp:HyperLink runat="server" ID="Link3" />
        <asp:HyperLink runat="server" ID="Link4" />
        <asp:HyperLink runat="server" ID="Link5" />
        <asp:HyperLink runat="server" ID="Link6" />
        <asp:HyperLink runat="server" ID="Link7" />
    </LoggedInTemplate>
    <RoleGroups>
        <asp:RoleGroup Roles="Administrator">
            <ContentTemplate>
                <asp:HyperLink runat="server" ID="Link1" />
                <asp:HyperLink runat="server" ID="Link2" />
            </ContentTemplate>
        </asp:RoleGroup>
    </RoleGroups>
</asp:LoginView>
Run Code Online (Sandbox Code Playgroud)