2013-01-16 87 views
0

我有我的會員供應商。我的應用程序由幾個項目組成 - UI,DAL,Services,BusinessLogic。如果我在UI項目中使用Membership.GetUser()函數,那麼我將獲得當前登錄用戶的實例。如果我在Service項目中編寫相同的代碼,我會得到null。有人可以提出我可能的問題嗎?會員供應商使用情況

+0

你是否從你的UI調用服務層? –

+0

是的,但我不想傳遞UserId在服務項目中使用它的每個方法 – seeker

回答

0

我總是依靠Membership.GetUser(username),因爲我也經歷過.GetUser()返回null。我假設你有你的服務層參考System.Web命名空間,否則你必須現在做。

我的回答並沒有告訴你爲什麼會發生這種情況,但我希望你能有另一種選擇。而不是使用Membership.GetUser()這在UI(的.aspx)的作品,用這個來代替

string currentUsername = HttpContext.Current.User.Identity.Name; 
MembershipUser currentUser = Membership.GetUser(currentUsername); 

我認爲這應該工作。

+0

我得到errror'HttpContext.Current'爲空。這可能是我沒有正確實施,但我無法弄清楚什麼 – seeker

+0

如果您將用戶名傳遞給服務層以防止它依賴於Web層,那會更好。另外,您是否添加了對System.Web的引用並導入了命名空間? – codingbiz

+0

Null HttpContext:http://www.pcreview.co.uk/forums/can-httpcontext-current-null-t3561352.html – codingbiz