2009-07-29 1 views
14

MVC와는 다른 버전을 사용해야하는지 잘 모르겠습니다 만, 멤버쉽을 사용할 때 ASP.NET 사용자 계정에 추가 정보를 추가 할 때 권장되는 접근 방식이 궁금합니다. 공급자? 또한이 사용을 다른 엔티티와 연관시키는 방법도 있습니다.ASP.NET MVC 멤버쉽과 추가 정보 연결하기

일반적으로 프로필을 신경 쓰지 않고 단순히 USERID를 참조하는 테이블에 추가 정보를 추가하는 것을 선호합니다. 이 좋은/나쁜/ASP.NET MVC 방식에 대한 허용 또는 대안이 될 것이라고?

답변

10

그것은 좋은 질문이며, 나는 고민 중입니다. 나는 세 가지 기본 접근법이 있다고 생각한다.

  1. 이 프로필 공급자를 사용하여 -이 쉽게 속성을 추가 할 수 있지만 필터/검색을 적용 할 필요 특히, 사용자의 테이블을 생성하는 등의 작업을 수행 할 성가신. API는 단지 그것을 자르지 않습니다.

  2. 새 테이블을 추가하거나 기존 테이블을 확장 한 다음이 테이블에 가입하십시오. 그런 다음 사용자 지정 데이터를 다시 얻으려면 고유 한 메서드를 작성해야합니다.

  3. MembershipProvider 클래스를 확장 한 멤버십 공급자를 작성하십시오. 내 마지막 프로젝트에 대한

나는 후자의 방법을 사용 - 난 단지 사용자 인증을 생성하고 암호를 변경하는 데 필요한 맨손으로 필수 요소를 구현 매우 quck SQL 공급자를 썼다. 나머지 가상 메서드에 대해서는 방금 NotImplementedException을 던졌습니다.

그런 다음 필요한 추가 속성을 추가 한 새 클래스를 추가하여 표준 MembershipUser을 전달하여 인스턴스화 할 수있었습니다. 이런 식으로 뭔가 :

public static CustomMember GetMember(MembershipUser user) 
{ 
    // Get your custom member 
} 

그런 식으로 당신은 대부분의 것들에 대한 표준 MembershipUser를 사용할 수 있지만 현재 사용자에 대한 자세한 정보를 얻기 위해 필요한 경우는 다음과 같이 물건을 수행

MembershipUser user = Membership.GetUser(); 
CustomMember member = CustomMember.GetMember(user); 

내가 좋겠 다른 사람들의 접근 방식이 무엇인지 알아 보는 것에 관심을 가지십시오.

+0

답장을 보내 주셔서 감사합니다. 네 접근 방식이 좋아. 나는 또한 다른 사람들이 생각하는 것을보고 싶어합니다. – Dkong

+0

회원 가입 방법을 잘 모르겠다면, CustomMember.GetMember()는 Membership.GetUser()가 기본 asp_users 테이블에서 작동하는 동안 일부 맞춤 테이블에서 데이터를 가져옵니다. – greenimpala

+0

안녕하세요, 조언 해 주셔서 감사합니다. 그러나이 방법을 선택하는 것과 관련된 기사 또는 모범 사례가 있습니까? 나는 그런 연결에 대해 감사 할 것입니다. –

1

MVC를 사용한다는 사실은 회원 자격 및 '사용자 데이터'를 다루는 방식에 중대한 영향을 미치지 않아야합니다.

나는 또한 기존의 사용자 테이블에 링크 된 내 프로필 공급자와 '프로필'스키마를 롤업하는 것을 선호하는 ASP.NET 프로필과 실제로 기본 ASP.NET 멤버쉽을 피합니다.

고객 멤버십 제공 업체에 대한 추가 정보가 필요하시면 의견을 게시하십시오.

0

저는이 주제와 사람들이하는 것에 대해 더 많은 피드백을 얻고 싶습니다. 현재 asp.net mvc 응용 프로그램에서 표준 asp.net 회원/역할 공급자 시스템을 사용하고 있으며별로 좋아하지 않습니다.

내 접근 방식은 aspnet_users 테이블을 변경하고 전체 열을 추가하는 것이 었습니다. CompanyId, StreetAddress 등

사용자가 표준 프로필에서 웹 사이트를 사용하는 방법에 대한 사용자 프로필 설정을 저장했습니다. 그들이 사용하는 테마, 페이징 된 목록이 표시하는 레코드 수 및 기타 사항이 포함됩니다.

대부분의 사람들이 알기로 프로필의 정보를 얻는 것은 힘들며 대형 시스템에서 읽고있는 것은 직렬화로 인해 성능 병목 현상이 될 수 있습니다.

내 응용 프로그램 스키마와 더 잘 어울리는 테이블을 롤링하는 방향으로 기울어 져 있으며 사용자 지정 SQL 공급자를 구현 한 다음 asp.net MVC에서 필요한 추가 보안 특성을 작성하는 방법을 살펴 봅니다.