2014-10-16 63 views
2

我目前正在學習Angularjs的應用程序需要基於角色的訪問控制邏輯。有些情況下,必須根據用戶角色限制訪問某些頁面的邏輯。還有其他一些情況下,我必須根據用戶角色限制訪問頁面的某部分或表單上的某些字段。如果Angularjs是一種客戶端方法,如果我不希望客戶訪問他們不應該訪問的項目,這似乎會出現問題。使用Angularjs和mvc5(.net)處理訪問控制的正確方法是什麼?

從服務器處理這些場景而不干擾Angularjs的當前方法是什麼?

我知道我有機會獲得剃刀來限制網頁訪問節,但有什麼問題就這個禮物Angularjs和這會是混合剃鬚刀和斜視的語法是一個好主意?

在我過渡到Angularjs,我有我的包裹心中圍繞如何處理這個問題。

回答

0

您可以使用MVC中的ajax請求視圖並處理響應的任何訪問限制。

我現在沒有很好的例子,但它可能會讓你以正確的方式?

使用挖空我已經使用模板enginge從MVC中檢索部分視圖。

同樣的事情應該在這裏工作,你可以保持的訪問限制在服務器端(你應該)。

+0

你有鏈接到一篇文章,我可以閱讀更多關於這種方法? – user1790300 2014-10-16 16:00:49

0

其中一種方法需要建立一個服務來檢查用戶是否被授權爲頁(在角),那麼路線

{ 
    "/admin": { 
     templateUrl: 'partials/admin.html', 
     controller: 'AdminCtrl', 
     requireLogin: true//THIS 
} 

上設置PARAMS,然後在控制器取消導航用通過處理$ locationChangeStart事件

(這全部顯示在我下面發佈的文章中)。

我的建議是創建視圖與單個控制器每個邏輯頁面元素和處理訪問相同的方式爲例。它不是每頁,而是每個視圖。

在添加/刪除表單中的輸入的情況下,可能會有一些方法可以在您創建的服務中處理此內容,然後根據訪問級別顯示/隱藏元素。

快速谷歌搜索'基於角色的角度訪問控制'將拉起大量有用的教程/文章。

This

而且This (更深入的與同樣的例子)

0

你需要考慮一下分爲兩個部分:

  1. 保護您的API(ASP.NET Web API)
  2. 使用安全性/角色信息來呈現適當的UI(可用選項和路由,啓用/禁用的元素等)。 - > AngularJS)

你應該假設API客戶端是惡意的 - 它們不一定是你的應用程序。

在認證/授權選項方面:HTTP頭令牌(如JWT)是常見選項,但僅HTTP的Cookie仍然是一個不錯的選擇,尤其是在您的客戶端都是基於Web的情況下。 JWT的另一個優點是您可以允許客戶端(AngularJS)讀取有效負載,並輕鬆共享有關允許用戶訪問的信息。如果您使用Cookie,則通常必須以其他方式提供該信息(例如,服務器端注入或API調用)。

您如何生成令牌/ cookie(以及它們包含的聲明)取決於您需要如何驗證人員。它可以是您自己的ASP.NET MVC登錄表單,並在必要時將憑據存儲在數據庫中。

如果您願意,您可以使用MVC視圖作爲AngularJS模板,但我傾向於看不到佈局以外的許多優點。

相關問題