2010-05-06 45 views
0

我想知道在httpcontext.current.items而不是httpcontext.current.user中存儲自定義主體是否存在任何缺點。我知道你需要爲每個請求設置它,但我也必須使用httpcontext.current.user來做到這一點。Asp.Net:在httpcontext.current.items中存儲主體

在此先感謝,

Pickels

回答

5

HttpContext.Current.User是這裏的「授權基礎設施」預計,主要是位置,並且將尋找他在這裏。所以,當他在那裏時,許多與授權相關的功能(例如基於IsInRole)將自動工作,當您將他存儲在其他地方時,您將不得不「破解」他們的工作。

羅馬

2
+0

我不知道Thread.CurrentPrincipal。必須查看與httpcontext.current.user的區別。 – Pickels 2010-05-06 13:08:27

+0

似乎用戶Thread.CurrentPrincipal解決了我昨天遇到的問題(http://stackoverflow.com/questions/2776949/moq-unable-to-cast-to-interface)。這是我想把校長存儲在其他地方的主要原因。仍然讀取線程和httpcontext之間的區別。 – Pickels 2010-05-06 13:21:24

0

這是一些額外的信息,可能會幫助其他人。它實際上回答了我自己的問題。

http://kigg.codeplex.com/

在這個項目中,他們似乎做什麼,我之前不知道。他們不使用實現IPrincipal的類,但他們只是將自己的用戶對象存儲在HttpContext.Current.Items中。他們如何維持它之間的請求,我仍然需要弄清楚。似乎他們使用某種依賴性注入。

相關問題