以 Hot Towel SPA 模板为例,假设我需要一个管理员链接和视图,该链接仅对具有管理员角色的登录用户显示。应该很简单吧?
使用 Razor(或 WebForms 或其他任何东西,实际上并不重要)视图,在 nav.cshtml 中包含它是一件简单的事情:
if(HasRole("Administrator")){
@* hyperlink here eg /Views/Admin *@
}
并对 ViewsController 进行操作,例如:
return PartialView("Administrator");
肯定可以更改约定,例如,Widget 的路由查找http://server/Views/widget
而不是http://server/App/views/widget.htm
(可能是选择性地?)禁用视图请求的缓存。
在我看来,主要的替代方案是公开不应公开给从浏览器查看页面源代码的任何人的内容。如果不应该显示某些内容,我宁愿根本不将其包含在 HTML 输出中,也不愿将其全部发送下来并有选择地隐藏/显示客户端。