簡體   English   中英

C#ASP.NET MVC-在Owin Cookie中存儲組權限

[英]C# ASP.NET MVC - Storing group permissions in Owin cookie

我正在為MVC5 Web API 2,ASP.NET應用程序使用無狀態設計。

用戶角色由管理員通過選擇權限來創建。 為應用程序中的每個用戶分配了一個自定義用戶角色,一個角色可以在用戶之間共享。

剃刀視圖是根據用戶角色中的權限來構造的。 根據用戶角色中的權限,可以使用MVC和API控制器。

對於對服務器的每個請求,都需要處理用戶權限。 我可以想到兩種方法:

  1. 將用戶角色的ID存儲在“角色聲明”中,並執行數據庫查找以檢索每個頁面加載/請求的權限。
  2. 在用戶登錄時,檢索分配給用戶角色的所有權限,將它們序列化為JSON並將它們存儲在Authentication聲明中。 然后,在每次頁面加載/請求時,將JSON反序列化為對象並處理權限。

其中哪一個是更好的選擇?

選項1比選項2慢很多。是否存在將權限存儲在cookie中的安全風險? 有沒有更好,更快捷,更安全的解決方案。

將權限和其他敏感數據存儲在cookie中始終是一個非常糟糕的主意,因為它很容易操作。 信任cookie需要額外的服務器端檢查,這違背了將其存儲在cookie中的目的。

您最好只信任您控制下的數據,也就是數據庫中的數據。

根據性能的不同,僅當您確實需要訪問權限時(如果性能影響太大),才對權限進行延遲評估可能會很有用。 請記住,您可以利用Redis之類的功能來顯着提高性能。

同樣,根據您的應用程序,我可能會選擇選項1,因為這是更安全的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM