我正在寻找标准做法,指定某个HTML元素,例如“创建用户”按钮,只有在用户登录并且属于角色“管理员”时才会显示。
例如,在Java中使用Spring MVC,Spring Security标记库有一个控件可以实现:
<sec:authorize access="hasRole('ROLE_PRESIDENT')">
<input type="button" value="Launch nuclear weapons"/>
</sec:authorize>
标签之间出现的内容只会在用户属于指定角色时显示。
ASP.NET MVC有这样的功能吗?
答案 0 :(得分:4)
对于Razor视图引擎:
@if (User.IsInRole("ROLE_PRESIDENT")) {
<input type="button" value="launch nuclear weapons" />
}
对于Webforms视图引擎:
<% if (User.IsInRole("ROLE_PRESIDENT")) { %>
<input type="button" value="launch nuclear weapons" />
<% } %>
答案 1 :(得分:3)
如果您需要整个网站的元素级安全性,建议您为每个元素创建custom HtmlHelpers
,这些元素都会实现您的渲染安全规则。
注意:在您的视图中包含角色检查的if
语句将无法维护
答案 2 :(得分:0)
@If User.IsInRole(“Administrator”)然后'无论如何 结束如果
类似应该工作