2009-06-23 3 views
1

내 컴퓨터에서 개발중인 ASP.NET 사이트가 있습니다. 그것은 자신의 sqlserver 데이터베이스가 있습니다. 어떤 이유로 회원 가입 시스템은 프로젝트에 대한 두 개의 신청 기록을 만드는 것으로 보입니다. 이는 회원 시스템이 시스템의 각 사용자에 대해 각 애플리케이션 레코드에 하나씩 두 개의 레코드를 생성하기 때문에 문제가된다. 왜 이런 일이 일어나고 어떻게 끄겠습니까?ASP.NET 멤버십 - 2 개의 응용 프로그램 ID 레코드

이것이 문제가되는 주된 이유는 각 새 사용자의 membershipID를 복구하기 위해 사용자 이름을 사용하므로 구성원이 데이터 저장을 위해 만드는 다른 테이블과 관련 될 수 있습니다.

어떤 제안이나 참고 사항을 부탁드립니다.

감사

더그

답변

7

당신은 멤버 자격 공급자의 "applicationName에"속성의 이름을 지정하지 않을 때 일반적으로 발생합니다. 이로 인해 멤버쉽 공급자는 웹 서버의 vroot 경로를 사용하게됩니다.

<membership> 
<providers> 
    <clear/> 
    <add name="AspNetSqlMembershipProvider" 
     type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
     connectionStringName="LocalSqlServer" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="true" 
     requiresUniqueEmail="false" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="7" 
     minRequiredNonalphanumericCharacters="1" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression="" 
     applicationName="/" 
    /> 
</providers> 

그래서 당신은 예를 들어 하나에서 응용 프로그램을 이동하는 경우 : 당신이 지정이없는 경우는 applicationName에 속성의 기본값을 볼 수 있습니다 아래의 예에서

폴더에서 다른 응용 프로그램으로 이동하면 새 응용 프로그램이 구성원 데이터베이스에 만들어집니다.

이 문제를 해결하는 방법은 "applicationName"속성에 이름을 지정하는 것입니다. 회원 데이터가 이미있는 경우 기존 애플리케이션 이름 중 하나로 이름을 지정할 수 있습니다. "aspnet_Application"테이블의 "ApplicationName"열입니다.

Always set the "applicationName" property when configuring ASP.NET 2.0 Membership and other Providers

:

ScottGu는 여기에 좋은 게시물을했다

관련 문제