2012-07-25 37 views
1

我有一個JSON爲我帶來了一組用戶角色,它們爲我定義了用戶可以執行或不執行的操作。如何根據用戶的權限在View中顯示/隱藏元素在JSON中獲得客戶端?

JSON加載在客戶端。我想使用服務器端代碼隱藏本頁面上的元素,而不是客戶端,因此這種方法更安全,不會對黑客開放。

//.Net MVC Code 
if (!userCanDelete){ 
    //don't print the selector to the page 
} 

是否有可能在淨MVC 2這樣做呢?

+0

是的,這是可能的。只需檢查用戶的權限。 – Styxxy 2012-07-25 21:20:52

+0

我們不使用Net的用戶權限對象。 – neoswf 2012-07-25 21:44:38

回答

2

我在我的應用中做了同樣的事情,用自定義HTML助手

就我個人而言,我會在登錄期間獲得特定人員和特定操作的特定權限。

我從JSON獲得此權限serverside(它更安全!)。

我存儲在會話中的權利和在我的自定義助手使用它:

public static class HtmlHelperCustom 
{ 
    public static bool IsAccessibleToUser(this HtmlHelper helper, String element) 
    { 
     var user = (UserModel)HttpContext.Current.Session["currentUser"]; 

     return user.rights.Contains(element); 
    } 
} 

然後在我看來,我只是打電話與元素的幫手:

@{ 
    if (Html.IsAccessibleToUser("urlUpdate")) 
    { 
     <a href="@Html.DisplayFor(modelItem => item.urlUpdate)" target="_blank"> 
      <i class="icon-wrench" title="update">&nbsp;</i> 
     </a> 
    } 
} 

你應該得到JSON服務器或稍微修改我的解決方案。

相關問題