2

SQLMembershipProvider를 사용 중이며 사용자에 대한 추가 정보를 추가하려고합니다. 새 DB를 만들고 각 새 사용자가 만들어 질 때 엔트리를 만드는 가장 좋은 방법은 무엇입니까? 그렇다면 SQLMembershipProvider UserID 값을 새 데이터베이스의 users 테이블에있는 PK로 사용하지 않을 이유가 있습니까?ASP.NET 멤버 자격 공급자 확장, PK == FK == OK?

또는 새 DB에 새 사용자 ID를 만들고 SQLMembershipProvider UserID를 FK로 사용하는 것이 좋은 이유가 있습니까?

+0

이것은 물론 추가하려는 정보의 성격에 따라 다르지만 프로필 기능을 사용하여 정보를 저장하는 대신 고려해 보셨습니까? –

+0

브랜트에게 감사드립니다. 전에 프로필 기능을 건너 왔어. 그냥 좋은 소개 인 http://aspnet.4guysfromrolla.com/articles/101106-1.aspx를 읽으십시오. 내 자신의 프로필 공급자를 만든 경우가 아니면이 프로젝트에 적합하지 않습니다. –

답변

2

나는 그것이 작동하지 않을 것 또는 (PK와 같은 사용자 ID)

그런 식으로하지 말아야 할 이유는 당신이 모든에 대해 별도의 데이터베이스를 사용하는 것 이유를 모르겠어요 이유 생각할 수 없다 , 난 그냥 현재 데이터베이스에서 테이블을 만들고 그것을 aspnet_users 테이블에 FK로 사용자 ID를 사용하여 설정 거라고.

+0

참. 별도의 DB를 사용할 이유가 없습니다. 난 그냥 템플릿으로 NerdDinner 프로젝트를 사용하고 있었고 그들은 그것에 별도의 DB를 사용했습니다. –

1

멤버 자격 공급자를 다시 쓰려면 모든 PK 열을 GUID에서 BITINT로 전환해야합니다. 나는 두 가지 이유로 이것을 할 것이다. 하나의 순차 번호는 작업하기가 훨씬 쉽고 이해하기 쉽고 두 번째로 GUID ID 대신 BIGINT를 사용하면 성능상의 이점이 있습니다. 또한 응용 프로그램의 다른 테이블을 선호하고 SQL 멤버 자격 공급자에서 기본적으로 제공되는 테이블을 제거하는 데 사용할 수있는 고유 한 ID 열을 사용합니다. 이렇게하려면 공급자의 각 기능에 대한 코드를 제공해야합니다. 작은 작업도 필요하지 않습니다.

0

나는 추가 속성이 포함 MembershipUser에서 파생 된 클래스 및 파생 MembershipUser 클래스의 인스턴스를 생성하는 MembershipProvider 유도체, 기존 데이터베이스 스키마 주위에 래퍼를 만들었습니다.

다른 지원 API가 다소 제한되어 있기 때문에 회원 인증 및 업데이트 방법 만 사용합니다. 관리자 용으로 별도의 작성/수정 사용자 API가 있습니다.

이 솔루션은 현재 여러 사이트에서 사용되고 있으며 잘 작동합니다.

관련 문제