我有几个ASP。具有相同行为的。NET页面:
- 每个页面都有自己的内容(例如表单和表格)
- 每个页面链接到2个web用户控制文件显示菜单框架
- 在
Page_Init
上,检查用户是否有权限查看内容。如果他们没有访问权限,页面将显示一条消息,而不显示其余内容。菜单框仍然会显示。
我是ASP的新手。因此,我只能考虑基于访问权的内容的<div>
标签的可见性。我想知道是否还有其他方法来解决这个问题。我使用VB的代码背后。请建议…
您可以在PlaceHolder
中包装部分并简单地关闭它,例如:
<asp:PlaceHolder ID="AuthUserStuff" runat="server">
<div>
...
</div>
</asp:PlaceHolder>
在你的代码后面,你可以简单地做这样的事情:
AuthUserStuff.Visible = User.IsAuthenticated;
PlaceHolder
有一个额外的优势,内容将不呈现给客户端,如果隐藏。
使用你控制可见性的div标签是不好的,这意味着用户可以只做一个"查看源",所有的内容都会在那里。
您不应该将内容添加到您使用的任何控件(或使用@Lloyd描述的控件)或将其重定向到自定义403页面(不访问)。