2011-11-22 85 views
4

我正在寻找指定某个HTML元素(如“创建用户”按钮应该仅在用户登录并且属于角色“管理员”时才显示的标准练习。如何使用ASP.NET MVC将某些HTML元素限制为某些角色?

例如,在Java中使用Spring MVC,Spring Security的标签库有,不只是一个控制:

<sec:authorize access="hasRole('ROLE_PRESIDENT')"> 
    <input type="button" value="Launch nuclear weapons"/> 
</sec:authorize> 

无论标签之间出现当用户属于指定的角色才会显示。

ASP.NET MVC有这样的功能吗?

回答

3

对于Razor视图引擎:

@if (User.IsInRole("ROLE_PRESIDENT")) { 
    <input type="button" value="launch nuclear weapons" /> 
} 

对于Web表单视图引擎:

<% if (User.IsInRole("ROLE_PRESIDENT")) { %> 
    <input type="button" value="launch nuclear weapons" /> 
<% } %> 
0

@If User.IsInRole( “管理员”)然后就是“不管 结束时,如果

像应该可以工作

3

如果你需要元素级别的安全性我建议你为每个元素创建custom HtmlHelpers,这些元素都实现了渲染的安全​​规则。

注:包装if陈述与角色检查,在你的看法会不会维护

+0

同意,这似乎是最接近相当于Spring MVC的代码中的问题(不,我知道的Spring MVC)尽管 – Jon

+0

您的意思是HtmlHelper应该检查用户是否有权完成该操作?然后它应该决定是否渲染一个HTML对象,我认为呢? – Scifiballer24