目前我的應用程序查看路由器參數並登錄用戶(Principal.Identity)來授權訪問某些資源(例如:將學生添加到您的班級[標識+班級ID])。但是,如果我沒有錯,微風js只支持一次批量保存。這似乎是我將不得不打開每一個數據並通過驗證/授權運行。這很好,如何使用Breeze JS處理授權?
但是我可能會失去的是交叉切割關心我的業務邏輯(作爲消息處理程序)(找到用戶對類的角色)和良好的Authroize註釋功能(只是說需要什麼樣的角色)。所以我必須權衡一下,還是有更好的Breeze JS可能提出的編程模型?
更新: 我的問題是更多的關於如何分離授權(發現在消息處理程序分配的角色+驗證,如果所需的角色是通過加入授權屬性到控制器的方法)從業務或數據訪問邏輯的邏輯。如果沒有風,我會檢查傳入的消息及其路由參數,以獲取其所有角色,然後在我的put/post/delete方法中使用所需的角色進行註釋。我不能輕而易舉地使用這種技術(它不是輕而易舉的限制,當你進行批量保存時它的折衷)。所以想知道是否有任何編程模型或設計模式已被微風傢伙使用。微風的樣本上有一些重寫上下文和使用存儲庫模式的東西,現在會遵循這一點。
Thx爲詳細的答案。在我的情況下,我需要在授權消息處理程序的URL中提供所有可用角色的值,角色提取還取決於操作,如果更新/刪除/添加,因爲每個角色都有自己的角色,而客戶端可能有一個角色不是其他(可以更新但不能添加/刪除)。根據我的理解,我可能不得不根據EntityState獲取角色,並在不使用[Authorize]屬性的情況下手動驗證它們。 –