2011-01-03 5 views
1

그래서 내 사이트에서 폼 인증을 사용하고 있으며 SQL Server에 모든 테이블과 저장 프로 시저를 설정했습니다. 유일한 것은, 나는이 모든 테이블이 필요하다고 생각하지 않는다는 것입니다. 테이블 이름에 대해서도 큰 팬이 아닙니다.ASP.NET 멤버십 스키마 수정

예를 들어 직원 인증을 사용하고 있으므로 테이블 이름을 "aspnet_Users"에서 "Employees"로 변경하는 것이 좋습니다. 필자는 개인화 테이블이 실제로 필요하지 않습니다. 하지만 그게 아무것도 망칠 지 모르겠다.

모든 것을 엉망으로 만들지 않고 테이블과 저장 프로 시저를 수정/삭제할 수 있습니까?

+0

[MVC의 사용자 정의 폼 인증] 가능한 복제본 (http://stackoverflow.com/questions/4586891/custom-forms-authentication-in-mvc) –

답변

9

스티븐,이 데이터베이스 개체를 추가하기 위해 aspnet_regsql.exe 명령 줄 도구를 실행 했습니까? 또는 %WINDIR%\Microsoft.Net\Framework\version 폴더 (버전은 사용중인 .NET 버전)에서 찾을 수있는 해당 SQL 스크립트를 실행하여 멤버쉽의 각기 다른 부분에 필요한 테이블/뷰/저장 프로 시저를 추가 할 수 있습니다. v4.0.30319). 이

명명 된 파일을 찾을 수 InstallCommon.sql, InstallMembership.sql, InstallRoles.sql, InstallProfile.sql, InstallSqlState.sql, 등등. InstallCommon.sql을 실행하고 필요한 다른 파일 만 실행해야합니다. 회원 및 역할 만 필요한 경우 InstallCommon.sql, InstallMembership.sqlInstallRoles.sql을 실행하십시오. 이 방법으로 데이터베이스에는 프로필, SQL 상태 등에 대한 테이블/뷰/sprocs가 포함되지 않습니다.

모든 내용은 ASP.NET이 추가 한 모든 데이터베이스 개체를 그대로두고 있습니다. 관심있는 하위 집합을 추가하는 것보다 더 많은 작업을 수행 할 수 있습니다. 프로필 또는 상태 모니터링을 나중에 구현해야 할 수도 있으므로 다른 데이터베이스 개체를 준비하고 을 준비 할 필요가 있습니다.

첫 번째 질문에 대답하십시오 - 아니요, aspnet_Users에서 Employees으로 테이블 이름을 변경할 수있는 방법이 없습니다. 그러나 직원 정보를 저장하는 자신의 테이블 (아마도 Employees)을 만드는 것은 드문 일이 아닙니다. 이 테이블은 직원을 특정 로그인 계정에 연결하는 aspnet_Users이라는 외부 키를 갖게됩니다. 이 방법을 수행하는 방법에 대한 설명은 Storing Additional User Information을 참조하십시오.

해피 프로그래밍!

+0

감사합니다. 스캇, 그 링크는 정확히 무엇입니까? 필요합니다. – Steven

2

간단한 글을 쓰지 않는 이유는 무엇입니까 SqlMembershipProvider?

편집 : 아니요, 기본 공급자는 해당 스키마를 필요로합니다. 나는 그것을 수정하는 것을 권하지 않는다.

+0

질문이 아니지만 대답이 맞다면 말이됩니다. 이것은 가능한 유일한 방법이지만 상당히 큰 작업입니다. – buc

+0

아니요, 대답입니다. 글쓰기 제공자는 당신을 돕기 위해 하나 또는 두 개의 샘플을 (그리고 거기에 많은 사람들이 있습니다.) 찾아내는 것이 전혀 어렵지 않습니다. –

1

인증 자료를 자체 데이터베이스에 두는 것을 고려한 적이 있습니까?

+0

눈에 띄지 않게 밖으로. 그냥 내가 그것을 좋아하는 방식 :) – Greg

1

Scott Mitchell이 ​​언급 한 .sql 스크립트에서 aspnet_Users에 대한 모든 참조를 Employees로 변경할 수 있지만 권장하지 않습니다. Membership/Roles API는 저장된 procs를 사용합니다. 따라서 storedProc 이름을 변경하지 않으면 괜찮을 것입니다.

향후 회원/역할 공급자 및/또는 API가 변경되면 문제가 발생할 수 있습니다.

나중에 직원이 아닌 일부 사용자에게 액세스 권한을 부여해야하는 경우 이름 바꾸기의 의미가 손실됩니다.

관련 문제