2015-07-21 56 views
-1

我在ASP.NET MVC 5應用程序中工作,我需要兩個級別的安全性。 用戶登錄系統後,他們可以選擇「登錄」第二個子系統(讓我們考慮一個公司分支)從公司分支列表中選擇一個公司分支。這種情況類似於擁有一些存儲庫的GitHub帳戶。首先,你登錄GitHub,然後你選擇存儲庫來處理它。 我不想傳遞分支id /名稱作爲url參數,我想創建一個cookie來存儲分支基本數據,如id和name。 我正在創建一個cookie(使用HttpCookie)和公司分支數據。我的問題是創建(並加密)第二個cookie以識別選定的公司分支的最佳方式是什麼?創建第二個ASP.NET MVC身份驗證Cookie

+0

在GitHub上,您不會「登錄」到存儲庫。您只需選擇它,然後將其轉到正確的URL以查看該頁面。你爲什麼不以這種方式配置你的路由?我會爲此避免Cookie。這使得很難將鏈接分享到一致的頁面。 – mason

+0

我以GitHub爲例進行了參考。我不想查詢我的數據庫中的每個請求以獲取公司分行名稱和其他基本公司分行數據(從公司分行標識/名稱等路線參數)。公司分公司的數據用於實現授權,所以我更願意在「緩存」(到目前爲止,在一個cookie中)有一些公司分支數據來查詢我的數據庫以獲取它。 –

+0

這沒有意義。用戶可以輕鬆操縱cookie。無論如何,您的服務器必須確定請求的授權。小型驗證數據庫查詢應該非常簡單快捷。如果不是,則可以將結果緩存在服務器內存中。 – mason

回答

1

使用角色來管理對不同分支的訪問。如果用戶首先無法訪問該下拉列表,則下拉列表甚至不應顯示該分支,並且該分支頁面的控制器操作應使用[Authorize]屬性進行修飾。那麼,如果你離開分支ID或URL中的任何東西就沒關係。無論如何,未經授權的用戶將無法查看它。 http://www.asp.net/web-pages/overview/security/16-adding-security-and-membership

+0

我已經有了一個具有成員資格和角色提供者的安全機制。我正在使用歐文。問題不是其他問題。所有操作和控制器均已實施授權。我正在尋找一種保存額外數據的好方法,例如用戶選擇的公司分支。我不想在每個請求中查詢我的數據庫以獲取公司分行名稱和其他基本公司分行數據。 –

+0

然後爲這些類型的值使用ASP.NET會話。 – howcheng