사용자 프로필을 저장하는 데 사용되는 aspnetservicesdb 데이터베이스가 있습니다. 새로운 asp.net mvc 응용 프로그램을 배포했습니다. 응용 프로그램은 멤버십/프로필 용도로 appdata 디렉토리에있는 로컬 sqlexpress 데이터베이스를 사용합니다.MVC 응용 프로그램이 잘못된 데이터베이스에서 자격 증명을 찾고 있습니다.
응용 프로그램에서 sqlexpress 데이터베이스를 사용하는 것을 원하지 않습니다.
web.config 및 AuthConfig.RegisterAuth()에서 연결 문자열을 제거했습니다. from global.asax
지금까지이 방법이 효과적이었습니다. 컨트롤러에서 User.Identity.Name을 성공적으로 사용할 수 있습니다. 그러나 뷰에서 User.IsInRole을 사용하려고하면 로컬 sqlexpress db가 존재하지 않기 때문에 SQL Server에 오류가 없습니다.
기존 데이터베이스를 사용하고 sqlexpress 데이터베이스를 찾는 것을 응용 프로그램에 알리는 방법은 무엇입니까?
편집 - 웹 설정
<authentication mode="Forms">
<forms loginUrl="~/login.aspx" timeout="2880" />
</authentication>
<membership userIsOnlineTimeWindow="480">
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="12" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
어떤 버전의 MVC입니까? 어느 회원 공급자입니까? SqlMembershipProvider는 web.config에서 데이터베이스를 구성하므로 거기에 연결 문자열을 설정합니다. EntityFramework는 무엇과 관련이 있습니까? SqlMembershipProvider는 EntityFramework를 사용하지 않습니다. –
예, 확실합니다. localdb에 대해 주석 처리 된 기본값을 포함하여 원래 질문에 연결 문자열을 추가했습니다. – tintyethan
엔티티 컨텍스트의 정의를 공유 할 수 있습니까? –