2013-01-16 2 views
0

본인은 회원 혜택을 제공합니다. 내 응용 프로그램은 UI, DAL, Services, BusinessLogic과 같은 여러 프로젝트로 구성됩니다. UI 프로젝트에서 Membership.GetUser() 함수를 사용하면 현재 로그인 한 사용자의 인스턴스를 가져옵니다. Service 프로젝트에서 같은 코드를 작성하면 null이 반환됩니다. 아무도 내게 가능한 문제를 제안 할 수 있습니까?멤버십 공급자 사용 내역

+0

UI에서 서비스 계층을 호출하고 있습니까? –

+0

예,하지만 서비스 프로젝트에서 사용하는 각 메소드에 대해 UserId를 전달하고 싶지 않습니다. – seeker

답변

0

나는 항상 Membership.GetUser(username)에 의존하고 있기 때문에 null을 반환하기 때문에 .GetUser()을 경험했습니다. 서비스 레이어 참조 System.Web 네임 스페이스가 있다고 가정합니다. 그렇지 않으면 지금해야합니다.

내 대답은 왜 이런 일이 일어나는 지 알려주지 않지만 대안이 있기를 바랍니다. 대신 UI (에서 .aspx)에서 작동 Membership.GetUser()을 사용하는 대신

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

나는이 일을한다고 생각이를 사용합니다.

+0

'HttpContext.Current'가 null 인 오류가 발생합니다. 그것은 내가 제대로 구현하지 못했을 가능성이 있지만 무엇을 알아낼 수 없습니까? – seeker

+0

웹 레이어에 종속되지 않도록 사용자 이름을 서비스 계층에 전달하면 더 좋습니다. 또한 System.Web에 대한 참조를 추가하고 네임 스페이스를 가져 왔습니까? – codingbiz

+0

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