2011-11-22 67 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