2009-10-02 7 views
2

여기에 문제가있어 누군가로부터 힌트가 필요합니다. 나는 aspnet DB와는 반대로 사용자와 역할을 관리하기 위해 자체 SQL Server 데이터베이스를 사용하고 있습니다. aspnet_membership 테이블에 일부 사용자 정의 필드를 추가 할 때까지 제대로 작동했습니다. 이렇게하면 asp.net 웹 관리 도구를 통해 새 사용자를 만들 수 없습니다. 다음 예외가 throw됩니다.asp.net 웹 관리 도구 사용자 데이터베이스

오류가 발생했습니다. 이전 페이지로 돌아가서 다시 시도하십시오.

다음 메시지는 문제를 진단하는 데 도움이 될 수 있습니다. 호출 대상에서 예외가 발생했습니다. System.RuntimeMethodHandle._InvokeMethodFast에서 System.RuntimeMethodHandle.InvokeMethodFast에서 (오브젝트 대상 [] 인수 SignatureStruct & SIG, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner 개체)에서 (오브젝트 대상 [] 인수 서명 SIG, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner 개체) System.Reflection.RuntimeMethodInfo.Invoke (Object obj, BindingFlags invokeAttr, 바인더 바인더, Object [] 매개 변수)에서 System.Reflection.RuntimeMethodInfo.Invoke (Object obj, BindingFlags invokeAttr, 바인더 바인더, Object [] 매개 변수, CultureInfo culture, 부울 skipVisibilityChecks) , CultureInfo 문화권)에서 System.Web.Administration.WebAdminMembershipProvider.CallWebAdminMembershipProviderHelperMethodOutParams (String methodName, Object [] 매개 변수, Type [] 매개 변수) System.Web.Administration.WebAdminMembershipProvider.CreateUser (문자열 사용자 이름, 문자열 암호, 문자열 전자 메일, 문자열 passwordQuestion , String passwordAnswer , 부울 isApproved, 개체 providerUserKey, MembershipCreateStatus & 상태)에서 System.Web.UI.WebControls.CreateUserWizard.AttemptCreateUser() System.Web.UI.WebControls.CreateUserWizard.OnNextButtonClick (WizardNavigationEventArgs e)에서 System.Web.UI.WebControls. System.Web.UI.WebControls.CreateUserWizard.OnBubbleEvent에있는 Wizard.OnBubbleEvent (Object source, EventArgs e) System.Web.UI.WebControls.Wizard.WizardChildTable.OnBubbleEvent (Object source, EventArgs args)의 Wizard.OnBubbleEvent (Object source, EventArgs e) System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) at System.Web.UI.Control.RaiseBubbleEvent (Object source, EventArgs args)에서 System.Web.UI.WebControls.Button.OnCommand (CommandEventArgs e) at System.Web.UI.Page.RaisePostBackEve의 System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler sourceControl, String eventArgument)의 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) nt (NameValueCollection postData) at System.Web.UI.Page.ProcessRequestMain (부울 includeStagesBeforeAsyncPoint, 부울 includeStagesAfterAsyncPoint)

이것은 사용자 생성시에만 발생합니다. 다른 모든 것은 잘 작동합니다. 이미 aspnet_regsql 유틸리티를 다시 실행 해 보았습니다. 다른 제안? 어떤 도움을 주시면 감사하겠습니다.

- 추측에서 알리

답변

1

, 사용자가 추가 한 모든 필드는 NULL로 정의하고 어떤 기본값이 없다?

그렇다면 사용자를 추가하는 코드에 입력해야합니다.

1

null 값을 보유 할 수있는 추가 열이 있습니까? 그렇지 않은 경우 적합한 기본값을 정의 했습니까?

멤버십 테이블에 쓰는 저장 프로 시저를 업데이트 했습니까? 그렇다면 custom membership provider을 작성하여 해당 정보를 채워야합니다. 어떤 세부 정보입니까?

이러한 값을 사용자의 Profile에 저장하는 것이 좋습니다. 사용자 지정 공급자와의 명시 적 제휴 관계가 아니라면이 값을 저장하는 것이 좋습니다.그들이 함께 할 수있다 - (/ 비활성 삭제 된 계정을 표시)


편집은 예, 아마 회원 테이블에 대해 것을 저장하는 의미가 해당 인스턴스에서 Ali's comments

에 응답하기 사이트의 사용자 회원

그러나 내가 알 수있는 주요 문제는 기본 로그인 컨트롤을 사용하는 경우 사용자가 초기에 로그인 할 수 있으며 삭제 된 필드의 값을 확인해야한다는 것입니다. LoggingIn (인증 전) 또는 LoggedIn (after) 이벤트 핸들러 중 하나에서 - 기본으로 처리하기 위해 내장 된 IsApproved 특성을 수정할 수 있습니다.

0

감사합니다. Zhaph and Oded. NULL 값은 문제가되었습니다. 그러나 Zhaph는 내가 더 알고 싶은 다른 문제를 지적했습니다. 추가 세부 정보는 isDeleted와 유사합니다. 여기에서는 실제로 사용자를 삭제하지 않고도 사실대로 isDeleted를 표시 한 다음 deletedByUser, dateDeleted 등과 같은 감사 관련 세부 정보 (및 일부 응용 프로그램에만 해당)를 표시합니다. 멤버십 테이블에 쓰는 저장 프로 시저를 업데이트하지 않았습니다. 대신 사용자를 만들 자마자 추가 세부 정보를 채우는 몇 ​​가지 추가 SP가 있습니다. 그것은 (회원 테이블에 필드를 저장하고 새로운 절차를 작성하는) 올바른 접근 방법입니까?

+0

지금 원하는 답변을 upvote 할 수있는 충분한 담당자가 있어야합니다. – Greg

관련 문제