2010-02-28 3 views
4

양식 인증을 사용할 예정이지만 db의 테이블에 asp.net 사용자를 연결할 수 있습니다.ASP.NET 멤버 자격/역할 사용자를 db 테이블에 연결하려면 어떻게합니까?

클래스와 학생 (역할)이있는 경우 학급 학생 표.

간단한 int 사용자 ID와 ASP.NET 사용자 이름이 들어있는 Users 테이블을 넣고 사용자 연결을 원하는 곳에 userid를 넣으려고합니다.

괜찮은가요? 이것을 모델링하는 다른 옵션은 무엇입니까? 그것은 약간 복잡한 소리가나요?

답변

4

기본적으로 ASP.NET 멤버십 서비스는 사용자 당 GUID을 생성하므로 테이블에 사용자의 외래 키가 있어야하는 경우 사용해야합니다. 따라서 사용자 당 고유 식별자 (앞서 언급 한 GUID)를 이미 가지고 있기 때문에 사용자 ID 매핑 테이블이 필요하지 않습니다.

사용자에 대해 저장할 수있는 정보의 양을 늘리려는 경우, 다음이 link에 관한 모든 세부 사항이 있습니다.

+0

내가 대답을 받아 들일 겁니다 좋은 소리하는 데 도움이, 즉 주어진 받아 연습 내가 직접 asp.net의 직접 테이블 또는 링크를 변경하지 : 더 청교도 방식으로 생각하고 있었다 .. 그러나 나는 것 같아요 당신이 링크 한 기사. – AppDeveloper

+0

필자는 개인적으로 같은 생각을 가지고 있었지만 실제로 ASP.NET 양식 승인을 중단하고 DotNetOpenAuth 라이브러리와 함께 자체 db 솔루션을 롤업하는 결과를 보였습니다. –

1

ASP.NET 멤버십을 사용하려면 ASP.Net 멤버 자격 클래스와 데이터베이스 테이블을 사용하여 사용자를 만들어야합니다. 이 사용자에 대해 적절한 역할이 설정된 dbo.aspnet_Membership의 사용자를 만들면이 테이블에 성공적으로 삽입되면 dbo.aspnet_Membership 테이블에서 UserId을 얻을 수 있습니다. 귀하의 사용자 테이블에서

은 INT (자동 증가) ID와 테이블을 생성하고, 또한 유형이라고 고유 식별자 말의 테이블 (오히려 이름보다), membershipID에 membershipID 필드를 만듭니다. 여기에 aspnet_Membership 테이블의 값을 저장하여 둘을 연결하는 위치입니다. 또한 참조 무결성을 위해 membershipID 필드에 외래 키 관계를 설정해야합니다.

편집 : 그냥 다른 게시물 명확하게는, ID는 ASP.NET의 코드를 입력 GUID의, 그리고 당신의 SQLServer 데이터베이스에 고유 식별자 유형 의.

0

다른 인증 시스템을 사용하는 시스템에 양식 인증을 역 적용한 시스템에서이 작업을 수행했습니다. 기존 사용자 계정 테이블에 열을 추가했습니다. aspnet_xxxx 테이블에서 사용하는 GUID 열을 추가하고 aspnet 테이블의 GUID로 채 웁니다. 그런 다음 테이블에있는 항목의 생성을 asp.net 멤버십 호출을 사용하여 계정 생성 성공 여부에 따라 트랜잭션으로 래핑했습니다. 하나의 시스템에는 엔트리가없고 다른 엔트리에는 엔트리가 없도록 테이블을 거래와 함께 동기화하는 것이 매우 중요합니다.

100 % 확신 할 수는 없지만 사용자 이름을 변경할 수 있으므로 시스템을 연결하는 데 사용해서는 안됩니다. GUID를 사용하십시오.

희망이

관련 문제