我想添加仅对某些用户可见的主菜单(母版页)的链接。我通过带有
的Web.Config文件为一个文件夹做了这个<authorization>
<allow users="User1" />
<deny users="*" />
</authorization>
母版页中链接的等价物是什么? 我已经知道Anonymous和LoggedInTemplate,但它们不适合我,因为我希望链接仅对给定用户可见。
我有一个ASP.NET Web Forms网站,我正在使用C#。
仅供参考,我是初学者并设置角色,会员资格等因为我使用VS 2013并且没有{{3}内置的这就是为什么我决定手动指定用户的原因,因为用户不多(最多5个)
答案 0 :(得分:0)
表格
<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;
}
}
}
将链接放在面板中,然后使用.Visible
属性隐藏/显示它们。面板的内容根本不会发送给客户端。我个人认为这是一个不优雅的解决方案。
您可以创建一个类似于LoginView
的新自定义服务器控件,但让它接受逗号分隔的用户名列表。但是我已经有一段时间了,因为我已经创建了一个新的控件(我现在的想法是在MVC上),所以我们不得不把它留给其他人。使用这样一个假设工具可能看起来像这样,有一个很好的声明性语法:
<myn:SelectiveContentShower>
<myn:UserGroup users="Larry,Moe,Curly">
My links are <a href="#">here.</a>
</myn:UserGroup>
<myn:SelectiveContentShower>