2010-01-10 7 views
12

ASP.NET 멤버십/역할에 익숙하지 않습니다. 이것은 ASP.NET MVC를 처음 사용하는 것과 ASP.NET MVC를 처음 사용하는 것입니다. MVC를위한 첫 번째 프로젝트를 만들면 멋진 템플릿을 만들어 계정을 만들 수 있습니다. 나는 이것을 수동으로 할 필요가 없다는 것을 알게되어 기뻤습니다. 그러나 SQL Server에 연결할 수 없어 실패했습니다. SQL Server가 없으며 MySQL이 있습니다. 이 시스템에서 MySQL을 대신 사용할 수있는 쉬운 방법이 있습니까? 아니면 자체 인증을 만들어야합니까?ASP.NET 멤버쉽/MySQL 역할 공급자?

답변

19

알아 냈어! ... 다음 단계를 수행

  • 을 버전 MySql Connector/Net의 6.2.2.0를 사용하면이에의 Web.config에 <membership>을 변경

    MySql.Web.dll

  • 에 대한 참조를 추가합니다 :

    <membership defaultProvider="MySqlMembershipProvider"> 
        <providers> 
        <clear/> 
        <add name="MySqlMembershipProvider" 
         type="MySql.Web.Security.MySQLMembershipProvider, 
           MySql.Web, Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
         autogenerateschema="true" 
         connectionStringName="NAME_OF_YOUR_CONN_STRING" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false" 
         passwordFormat="Hashed" 
         maxInvalidPasswordAttempts="5" 
         minRequiredPasswordLength="6" 
         minRequiredNonalphanumericCharacters="0" 
         passwordAttemptWindow="10" 
         passwordStrengthRegularExpression="" 
         applicationName="/" 
        /> 
        </providers> 
    </membership>
  • 실행 프로젝트 | ASP.NET 구성 도구 및
  • 는 ASP.NET 3.5에서 테스트 테스트 보안 탭을 클릭, MySQL 서버 버전 5.1, 윈도우 XP 64 비트
+0

감사합니다. 이것은 큰 도움이되었습니다. defaultProvider 추가를 놓치지 마십시오! – Kildareflare

-1

Project ASP.NET Configuration을 클릭하십시오.

그러면 데이터 폴더에 SQL 데이터베이스가 생성됩니다.

데이터를 보려면 Visual Studio를 사용하십시오.

희망이 도움이됩니다.

편집

난 당신이 다음 다음의 테이블과 데이터베이스를 볼 수 있도록해야 서버 탐색기를보기 위해 Ctrl + Alt + S를 사용할 수있는 추가해야합니다.

SQL을 설치하지 않아도됩니다.

+0

마침내 도구가 생기고 (당밀보다 느립니다) 데이터베이스가 표시되지 않습니다. 보안 탭으로 이동하여 데이터 저장소를 선택하려고했습니다. 그럼 나에게 공급자 목록을 제공하지만 단 하나 (AspNetSqlProvider),하지만이 날 같은 오류 (SQL 서버에 연결할 수 없습니다) 준다. –

+0

Visual Studio에서 aspnetdb.mdf 파일을 볼 수 있습니까? App_Data 폴더에 있어야합니다. 모든 파일을 표시하고 있는지 확인하십시오. – griegs

+1

아니요. MDF = SQL Server. SQL 서버를 가지고 있지 않습니다. –

2

원래 질문은 & MVC의 버전이 사용 된 것을 지정하지 않았습니다. .NET 4.5와 MVC 4의 최근 릴리스에서는 OP와 동일한 문제를 겪었지만 새로운 기술이 적용되었습니다. 이것은 내 quick fix for it이며 Josh Stodola의 대답과 거의 같은 구성이지만 몇 가지 추가 단계가 있습니다.

<membership defaultProvider="MySqlMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="MySqlMembershipProvider" 
     type="MySql.Web.Security.MySQLMembershipProvider, 
     MySql.Web, Version=6.5.4.0, PublicKeyToken=c5687fc88969c44d" 
    autogenerateschema="true" 
    connectionStringName="*NAME_OF_YOUR_CONN_STRING*" 
    enablePasswordRetrieval="false" 
    enablePasswordReset="true" 
    requiresQuestionAndAnswer="false" 
    requiresUniqueEmail="false" 
    passwordFormat="Hashed" 
    maxInvalidPasswordAttempts="5" 
    minRequiredPasswordLength="6" 
    minRequiredNonalphanumericCharacters="0" 
    passwordAttemptWindow="10" 
    passwordStrengthRegularExpression="" 
    applicationName="/" /> 
    </providers> 
</membership> 

는 AccountController 및 뷰가 작동 얻기 다음 MVC 4 AccountController 삭제

  1. , AccountModels는 계정보기 폴더 _LoginPartial는
  2. 새로운 MVC 3 웹 응용 프로그램
  3. 복사본 만들기보기를 공유 MVC 3 AccountController, AccountModels, Account view 폴더 및 _LogOnPartial MVC 4 응용 프로그램에 대한보기 공유
  4. @Html.Partial(“_LoginPartial”)@Html.Partial(“_LogOnPartial”)
0

과 같은 공유 _Layout보기 내 시나리오에서는 .NET 웹 응용 프로그램에서 MySQL에 연결할 필요가 없습니다.따라서 다음과 같은 두 가지 작업을 통해이 문제를 해결했습니다. 2) MySQL 설치 후 추가 된 모든 키를 Web.Config 파일에서 제거하십시오.

지금, 내 .NET 응용 프로그램이 비슷한을 통해 가야했다 혈중 알코올 농도

0

(또는 다른 사람은 .NET 웹 응용 프로그램의 루트 폴더에 설치하기 전에 원래 Web.Config 파일을 다시 복사).
Tutorial: MySQL Connector/Net ASP.NET Membership and Role Provider

참고 : 여기에

나에게 도움이 공식 MySQL의 연습의 내 경우, machine.config 편집 할 것이었다 한 (그들이 지정하지 않은 32 비트있는, 그리고 64 비트 편집 하나는 도움이되지 않았다).

관련 문제