데이터베이스 기반 ASP.NET MVC 4 프로젝트가 있고 데이터베이스의 사용자 정의 user_info 테이블과 함께 SimpleMembershipProvider를 사용하고 싶습니다. SQL Server에서 Entitiy Framework 6을 사용하고 있습니다. 나는 해결책을 찾기 위해 인터넷과 SO를 샅샅이 조사했지만 운이 없었다.데이터베이스 우선 ASP.NET MVC4 프로젝트에서 내 데이터베이스로 SimpleMembershipProvider 사용
내 user_info 테이블은 다음과 같다 : 나는 How can I customize simple membership provider to work with my own database ASP.NET mvc 4의 단계를 수행하는 것을 시도했다, 그러나 나는이 방법은 비 코드 - 먼저 프로젝트를 위해 작동합니다 생각하지 않습니다
[Id] INT IDENTITY (1, 1) NOT NULL,
[email] NVARCHAR (MAX) NULL,
[first_name] NVARCHAR (MAX) NULL,
[last_name] NVARCHAR (MAX) NULL,
[internal_role] INT NULL,
CONSTRAINT [PK_user_info] PRIMARY KEY CLUSTERED ([Id] ASC)
. "요청한 .Net Framework 데이터 공급자를 찾을 수 없습니다. 설치되지 않았을 수 있습니다."라는 오류 메시지가 나타납니다. SimpleMembershipInitializer() 함수에 다음 코드를 추가하려고 할 때. 여기
WebSecurity.InitializeDatabaseConnection("ReservationSystemEntities", "user_info", "Id", "email", autoCreateTables: true);
내 Web.config 파일에서 관련 정보입니다 :
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="ReservationSystemEntities" connectionString="metadata=res://*/ReservationSystem.csdl|res://*/ReservationSystem.ssdl|res://*/ReservationSystem.msl;provider=System.Data.SqlClient;provider connection string="data source=(localdb)\v11.0;initial catalog=ReservationSystem;integrated security=True;user id=xxxxx;password=xxxxx;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
I 해요 문제는이 답변에 따라, 가능한 경우도 확실하지 : SimpleMembershipInitializer won't initialize
이를 바탕으로 대답 Using MVC 4 SimpleMembership with an existing database-first EF model 다음과 같은 연결 문자열을 지정해야합니다.
<add name="CONNECTION_STRING_NAME" connectionString="data source=SERVER;initial catalog=DATABASE;user id=USER;password=PASSWORD;" providerName="System.Data.SqlClient" />
내 연결 문자열을 이처럼 연결 문자열로 변환하는 방법을 모르겠다. 이 유형의 연결 문자열은 Code-First를 사용할 때만 유효합니까?
도움을 주시면 감사하겠습니다.
EF6를 사용하는 것을 알 수 있습니다. 어떤 데이터베이스 서버 유형을 사용하고 있습니까? 또한 webconfig에서 EntityFramework 및 System.Data 섹션을 게시하십시오. "비밀번호/사용자 이름 제외" 직접적인 오류는 web.config에서 EF6이 올바르게 구성되어 있지 않다는 것입니다. 아니면 EF6의 누 겟 패키지가 누락되었습니다. MySql을 사용하는 경우 제대로 실행하려면 많은 어려움이 있습니다. –
@Ryios 도움을 주셔서 대단히 감사합니다.요청한 정보로 질문을 업데이트했습니다. 내 웹 사이트는 SimpleMembership을 내 데이터베이스와 함께 사용하기 전에 EF6를 사용하여 올바르게 작동했습니다. WebSecurity.InitializeDatabaseConnection (...) 부분을 InitializeSimpleMembershipAttribute에 추가하기 시작할 때까지 아무 문제없이 EF6을 사용하여 user_info 테이블이 들어있는 데이터베이스에 액세스 할 수있었습니다. – oalbrecht
자체 데이터베이스에서 SimpleMembership 정보로 프로젝트를 시작했습니다. 이 데이터베이스 외에도 EF6을 사용하여 액세스하는 모든 테이블을 가진 테이블이 있습니다. 이제 SimpleMembership 테이블이 포함 된 데이터베이스에 DefaultConnection을 사용하지 않고 대신 다른 데이터베이스 인 SimpleMembership을 사용하려고합니다. – oalbrecht