2012-06-22 3 views
8

MVC 4 RC 기본 템플릿을 사용하여 로그인을 사용하려고합니다. MVC 3, Aspnet_regsql.exe -> SQL server와 같은 방식으로했습니다. 그런 다음 SQL 서버에 연결 문자열을 지정했습니다. AccountController에MVC 4 RC - Aspnet_regsql.exe

Server Error in '/' Application. 

Invalid column name 'ApplicationId'. 
Invalid column name 'UserName'. 
Invalid column name 'ApplicationId'. 
Invalid column name 'UserId'. 
Invalid column name 'UserName'. 
Invalid column name 'IsAnonymous'. 
Invalid column name 'LastActivityDate'. 

오류 : 나는 새로운 사용자를 등록 할 때

나는이 얻을 내가 지금까지이 오류하지만 행운을 Google에 노력했습니다

   Line 85: // Attempt to register the user 
       Line 86: MembershipCreateStatus createStatus; 
Error here -> Line 87: Membership.CreateUser(model.UserName, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: true, providerUserKey: null, status: out createStatus); 
       Line 88: 
       Line 89: if (createStatus == MembershipCreateStatus.Success) 

. MVC 4에서이 작업을 수행해야하는 다른 방법이 있습니까?

+0

해결책을 찾았습니까? SQL 프로파일 러를 실행하면'DefaultMembershipProvider'에 의해 생성 된 SQL 문은'aspnet_regsql' ('aspnet_Applications' 대신'Applications','aspnet_Users' 대신'Users')와는 다른 테이블 이름을 사용합니다. 한 가지 해결 방법은 멤버 자격 공급자에 맞게 테이블의 이름을 바꾸거나 MVC에 대한 사용자 지정 멤버 자격 공급자를 작성하는 것입니다. –

답변

10

aspnet_regsql.exe 버전 2.x의 회원 테이블을 사용했기 때문에 동일한 오류가 발생했습니다. 버전 2.x 폴더에서 aspnet_regsql.exe 실행 파일을 실행하고 테이블을 제거했습니다. 그런 다음 위의 실행 파일을 더 이상 사용할 필요가없는 새 범용 공급자를 사용하면 처음 연결할 때 테이블이 만들어집니다.

이 기사에서는 이전 aspnet_Memembership과 Universal Provider의 차이점에 대해 자세히 설명합니다. 기사에서

Stronger Password Hasing Net

핵심 포인트 : 첫째

,이 더 이상은aspnet_regsql, 당신은 당신의 연결 문자열이 설정되어 있는지 확인합니다 그리고 계정이있다 DBO 권한 (안 걱정하지 마라,이 방법으로 머물러야 할 필요는 없다.) 그런 다음 앱을 실행하고 멤버쉽 제공자가 DB에 접근하도록하는 모든 작업을 수행하려고 시도한다 (즉, 로그온한다 - 계정이 없다는 사실은 중요하지 않다.).

그게 전부입니다.

+0

"우선, 더 이상 aspnet_regsql이 없습니다. 연결 문자열이 설정되었는지 확인하십시오."그리고 모든 것이 완벽하게 작동합니다. 더 이상 regsql 도구가 필요하지 않습니다! 고맙습니다. :) – judehall

+0

새로운 System.Web.Providers 프레임 워크에 해당하는 aspnet_regsql.exe가 없다는 문제는 db 스키마를 만든 다음 관리자 사용자 및 역할로 멤버쉽을 시드 할 수 없다는 것입니다. 일반 사용자가 등록하는 것을 허용하기. MvcInstaller (NuGet 및 github)를 구축하고 aspnet_regsql.exe를 사용하여 관리자 용 Membership 시스템을 설치합니다. 이 방법으로 새 ​​시스템의 구성 요소를 업데이트 할 수 없습니다. 그것은 실망 스럽다. – Kahanu