2

SQL Server 공급자와 .Net 멤버쉽을 사용하는 ASP.Net 웹 사이트가 있으므로 Aspnet_regsql.exe에서 만든 SQL 테이블에 사용자와 역할이 저장됩니다..Net 회원 데이터베이스는 이식 가능합니까? 또는 계정이 어떻게 원래 웹 사이트 또는 서버에 바인딩되어 있습니까?

이 아키텍처는 완전히 독립적이며 이식성이 있습니까? 아니면 사용자가 계정을 만드는 특정 웹 사이트에 어떻게 든 연결되어 있습니까?

dev 또는 UAT에 많은 사용자를 생성하면이 데이터베이스를 다른 도메인 이름으로 액세스 한 다른 서버에 백업하고 복원해도 문제가 해결되지 않습니다.

우리는 데이터베이스를 이동할 때 사용자가 그룹 관계를 잃는 것처럼 이상한 행동을 보았습니다. 그리고이 데이터베이스가 실제로 어떻게 이식 가능하고 환경에 독립적인지는 궁금합니다. 뭔가가 기계 키 또는 도메인에 묶여 있다는 몰래 의심 받고 있습니다.

답변

0

예 그들은 잘 작동해야합니다.

주의해야 할 곳은 암호 관리 입니다. .Net 회원 공급자는 컴퓨터 특정 키를 사용하여 암호을 암호화하거나 해시 할 수 있습니다. 그러나 당신이 asp.net 어플리케이션에 자동으로 생성 된 머신 특정 키가 아닌 특정 머신 키를 사용하도록 알려주는 방법이있다.

내 응용 프로그램에서 암호를 암호화 된 상태로 유지하고 암호화/암호 해독을 위해 다음과 같이 컴퓨터 키를 지정했습니다. 이렇게하면 개발 데이터베이스를 프로덕션 서버로 이식하거나 하나의 프로덕션 서버에서 다른 프로덕션 서버로 데이터베이스를 마이그레이션 할 수 있습니다.

<machineKey validationKey="<your-validation-key>" decryptionKey="<your-decryption-key>" validation="SHA1"/> 

MembershipProviders로 작업하는 동안 마이그레이션과 관련하여 걱정할 사항은 없습니다.

+1

이 작업을 수행하지 않은 경우 공급자가 자동 ​​생성 된 컴퓨터 키가있는 암호를 사용하도록 설정하면이 암호를 복구 할 수 있습니까? 이게 내 문제인지는 모르겠지만 암호 해시가 특정 컴퓨터에만 한정되어 있다고 가정하면 ... 그 일에 대해 무엇을합니까? – Deane

+0

나는 이런 식으로 우리가 적극적으로 돌 보았 기 때문에이 상황을 실제로 들여다 보지 못했습니다. 나는 당신이 machine.config에서 컴퓨터 키를 검색 할 수 있어야한다고 생각합니다. 이 주제에 열매를 맺은 것을 발견하면 여기에 다시 쓸 것입니다. –

0

사용자는 응용 프로그램 이름에 바인딩됩니다. 이를 확인하고 각 사용자가 연결된 응용 프로그램 이름이 프로덕션 서버의 web.config에있는 응용 프로그램 이름과 일치하는지 확인할 수 있습니다.

이외에도 멤버십을 다른 데이터베이스로 이식 할 때 테이블뿐만 아니라 모든 저장 프로 시저도 사용해야합니다. 어떠한 이유로 든 데이터베이스 스키마를 포팅하는 중이라면 포팅하기 전에 Aspnet_regsql.exe를 실행해야합니다.

+0

그러나 백업 및 복원 상황에서 모든 저장된 procs가 처리되지는 않습니까? – Deane

관련 문제