2010-04-29 48 views

回答

3

如果您沒有爲您的站點配置成員資格,getuser()將不會產生任何結果。

Context.user是交給asp.net運行時的身份令牌,如果除匿名訪問以外的任何身份驗證都配置爲站點,則會產生用戶。

+0

聽起來就像你說Membership.GetUser()會從成員資格中獲得用戶(足夠明顯),而Context.User會從更廣的範圍獲取用戶 - 任何東西。因此,例如,使用Windows身份驗證,不會從Membership.GetUser()中產生任何內容,但會從Context.User中產生Windows用戶。 (這似乎是從快速測試的情況。) 在這種情況下,如果您肯定使用會員供應商,建議使用哪種方法? – zimdanen 2010-04-29 01:39:15

+0

MembershipProvider,以我的經驗;主要用於在身份驗證需要一定靈活性時,如果需要,甚至可以擁有XMLMembershipProvider。如果您使用基於表單的身份驗證,membershipprovider可能是最簡單的方法。 – Pierreten 2010-04-29 01:50:27

+0

更深入地看,它看起來像Context.User真的提供最少的信息。我認爲你是正確的Membership.GetUser()。 然後,如果您只需要從Context.User獲取的信息,則可能會使用Membership.GetUser()效率拖動。 – zimdanen 2010-04-29 02:00:22

3

Membership.GetUser意味着使用MembershipProvider。它只是從任何配置的存儲中檢索用戶信息。 (例如ActiveDirectory,SQL Server)。 Context.User是當前請求的IPrincipal安全上下文。

相關問題