2011-05-13 4 views
5

ASP.NET (v4)에서 제공되는 로그인/멤버십 시스템을 사용하는 첫 번째 사이트 생성.ASP.NET SQL memership DB에서 삭제 된/누락 된 응용 프로그램의 참조를 제거 하시겠습니까?

지금까지 모든 것이 좋았습니다. 원격 SQL 서버에서이를 가리키는 web.config가 사용되었습니다.

본인이 원래하지 않은 것은 멤버 자격 공급자의 'applicationName'을 지정했기 때문에 SQL 서버에서 테이블을 볼 때 이름이 "/"로 표시됩니다.

web.config를 업데이트하고 이름을 지정하고 할당 된 멤버쉽 및 공급자 섹션을 추가하고 ASP.NET 구성 마법사를 실행하여 사용자 DB를 다시 초기화했습니다.

SQL 서버에서 응용 프로그램은 이제 이름과 새 GUID를 표시하고 예상대로 작동합니다.

내 질문은 다양한 ASP.NET SQL 테이블에서 '이전 사이트'와 관련된 모든 (현재 불필요한) 레코드를 제거하는 자동화 된 방법이 있습니까, 아니면 수동으로 수행해야 할 것인가입니다. ?

이 작업을 수동으로 수행해야하는 경우 누구나 DB에서 모든 참조가 제거되도록 레이아웃 된 절차를 알고 있습니까?

답변

10

나는이 스크립트를 개발 컴퓨터에서 사용했지만 과거에는 문제가 없었습니다. 나는 멤버쉽 제공자와 함께 정말로 마을에 갔다 왔다고 말할 수는 없으므로 사용자와 역할 테이블에 데이터 만 가져 왔지만이 스크립트는 모든 것을 정리해야한다고 생각합니다.

물론 트랜잭션을 추가하지 않은 상태에서 실행하기 전에 백업을 만드십시오.

DECLARE @APPID UNIQUEIDENTIFIER 

--Change the application id to the app you want to clear out 
SET @APPID = 'bb5f1064-062d-4a21-875c-dc15c1e9ec27' 

delete from aspnet_Membership Where UserId in (Select UserId From aspnet_Users Where ApplicationId = @APPID) 
delete from aspnet_PersonalizationPerUser Where PathId in (Select PathId From aspnet_Paths Where ApplicationId = @APPID) 
delete from aspnet_PersonalizationAllUsers Where PathId in (Select PathId From aspnet_Paths Where ApplicationId = @APPID) 
delete from aspnet_Paths Where ApplicationId = @APPID 
delete from aspnet_PersonalizationPerUser Where UserId in (Select UserId From aspnet_Users Where ApplicationId = @APPID) 
delete from aspnet_Profile Where UserId in (Select UserId From aspnet_Users Where ApplicationId = @APPID) 
delete from aspnet_UsersInRoles Where RoleId in(Select RoleId from aspnet_Roles Where ApplicationId = @APPID) 
delete from aspnet_Roles Where ApplicationId = @APPID 
delete from aspnet_Users Where ApplicationId = @APPID 
delete from aspnet_Applications Where ApplicationId = @APPID 
+0

대단히 감사 드리며 시간을 절약 할 수 있습니다. 나는 내가 알지 못하는 ASP/VS 중심의 방법을 없애지 않는 것만큼이나 내 자신을 만드는 것을 피하려고 애를 썼다. :) – techie007

관련 문제