Link 在母版页中仅对某些用户可见

Link in master page visible for only certain users

我想将 link 添加到仅对特定用户可见的主菜单(母版页)。我通过带有

的 Web.Config 文件为一个文件夹做了这个
<authorization>
  <allow users="User1" />
  <deny users="*" />
</authorization>

母版页中 links 的等价物是什么? 我已经知道 Anonymous 和 LoggedInTemplate 但它们对我不起作用,因为我希望 link 仅对给定用户可见。

我有一个 ASP.NET Web 表单网站,并且我使用的是 C#。

仅供参考,我是初学者,设置角色、成员资格等对我来说是个问题,因为我使用的是 VS 2013,它没有 Website Administration Tool内置。这就是为什么我决定手动指定用户,因为不会有很多用户(最多 5 个)

表格

<asp:Panel runat="server" id="SpecialAdminOnlyPanel">
My links are <a href="#">here.</a>
</asp:Panel>

代码隐藏

List<string> AllowedUsers = new List<string>(){"Larry","Moe","Curly"};

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        if(!AllowedUsers.Contains(User.Identity.Name))
        {
            SpecialAdminOnlyPanel.Visible=false;
        }
    }
}

将您的链接放在面板中,然后 hide/show 使用 .Visible 属性。面板的内容根本不会发送给客户端。我个人认为这是一个不优雅的解决方案。

您可以创建一个类似于 LoginView 的新自定义服务器控件,但让它接受以逗号分隔的用户名列表。但是自从我创建一个新控件以来已经有一段时间了(我现在的想法是 MVC)所以我们不得不把它留给其他人。使用这样一个假设的工具可能看起来像这样,有一个很好的声明语法:

<myn:SelectiveContentShower>
    <myn:UserGroup users="Larry,Moe,Curly">
        My links are <a href="#">here.</a>
    </myn:UserGroup>
<myn:SelectiveContentShower>