2010-04-27 5 views
4

사용자 지정 멤버 자격 공급자를 구현하려고하고 GetUser 메서드를 변경하려고합니다. 문제는 GetUser가 MembershipUser를 반환하고 FirstName과 LastName이라는 두 개의 추가 속성이있는 MyMembershipUser를 반환하려는 것입니다. MyMembershipUser를 반환하는 멤버 자격 공급자에서 새 메서드를 만들 수 있지만 그다지 의미가 없다고 생각합니다.사용자 지정 멤버 자격 공급자 멤버쉽 사용자 문제 구현

어떻게해야합니까?

답변

4

이렇게하면 클래스의 목적을 벗어날 것입니다. Membership 다른 속성에 액세스해야하는 경우이 같은 일을 수행

var user = Membership.GetUser(userName, true) as MyMembershipUser; 

정말 당신은 MembershipUser 제공하지 않는 일을 처리하는 별도의 Profile 클래스를 가져야한다.

var profile = Profile.GetProfile(Membership.GetUser(userName, true)); 
+0

감사합니다! 나는 단지 4 분 안에 예멘 아랍 공화국 해답을 받아 들일 수있는 것처럼 보인다. 나는 기다릴 것이다! –

+0

감사합니다. 해당 시나리오에 대한 프로파일을 사용합니다! U 남자! : D –

+0

@ 존 - 도움이되기를 기뻐, 행운을 비네. – ChaosPandion

0

MembershipUser가 MyMembershipUser의 기본 클래스가 다음 인 getUser()의 리턴 타입은 MembershipUser 경우에도 MyMembershipUser의 인스턴스를 반환하고, 필요한 경우 MyMembershipUser로 다시 주조 (하지만 당신이 정말로 필요로 할 수있는 경우 그렇게하려면?)

여기는 다형성의 예입니다.

2

프로필 제공자로 가야합니다. 이 부분을 확인하십시오 link, SqlStoredProcedureProfileProvider 및 SqlTableProfileProvider가 있습니다.이 방법을 사용하면 데이터베이스에 "일반 텍스트로"프로필 데이터를 저장할 수 있으므로 필요할 때마다 db를 쿼리 할 수 ​​있습니다.

"당신은 당신이 당신의 자신의 데이터베이스 스키마 및 데이터베이스 로직에 프로파일 데이터를 매핑하는 저장 프로 시저에 필요한 어떤 비즈니스 로직. 구현할 수있다"

관련 문제