2014-11-11 2 views
1

저는 Entity Framework에서 ASP.NET MVC를 사용하고 있으며 Role Manager를 작동시키는 방법을 찾으려고합니다. 처음에 사용자를 등록하고 EF를 실행하여 사용자 관리/ID 테이블을 작성한 후 기존 데이터베이스로 이동 (AspNetUsers, AspNetRoles, AspNetUserRoles, AspNetUserClaims 및 AspNetUserLogins)하고 기본 연결을 설정하여 해당 지점을 가리 켰습니다. . 모든기존 데이터베이스와 함께 작업 할 Role Manager 얻기

<roleManager enabled="true" defaultProvider="RoleManager"> 
    <providers> 
     <add name="RoleManager" 
      type="System.Web.Security.SqlRoleProvider" 
      connectionStringName="DefaultConnection" 
      applicationName="MyApp" /> 
    </providers> 
</roleManager> 

과 역할을 만들려고 (Roles.CreateRole("Admin") [사이드 질문, 어떤 방법이, 벌금과 내가 역할 관리자를 구현하는 데 필요한 내 Web.config의에 다음 항목을 추가 한 후 결정 때까지 멋쟁이이었다 VS 2013에서 코드 외부에서 이렇게하려면?]) 오류가 발생했습니다 : Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. 그래서 자연스럽게 테이블이 생성 된 유일한 데이터베이스 객체는 아니라고 가정했지만 원본 mdf를 체크 아웃 한 후에 실제로 그 모든 것이있었습니다. 나는이 시점에서 완전한 손실에 처해 있으며 모든 도움이 크게 감사 할 것입니다.

업데이트 : aspnet_reqsql 도구를 사용하여 역할 관리자 기능을 추가하는 것과 관련된 솔루션을 찾았지만이 테이블은 호환되지 않는 것처럼 보입니다. 예 : dbo.aspnet_Users 대신 dbo.AspNetUsers.

답변

3

테이블 AspNetUsers, AspNetRoles, AspNetUserRoles, AspNetUserClaims 및 AspNetUserLogins은 최신 ASP.NET ID 시스템의 일부인 반면 aspnet_Users 등은 이전 시스템의 멤버입니다 (회원 자격). Roles.CreateRole은 신원이 아닌 회원 자격에서 왔습니다. Identity 시스템의 경우 roleManager web.config 항목은 필요하지 않으며 역할은 Microsoft.AspNet.Identity.RoleManager을 사용하여 만들어집니다. 예 :

RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new MyDbContext())); 
var roleresult = RoleManager.Create(new IdentityRole(roleName)); 
+1

귀하의 가정은 정확합니다! 신원을 올바르게 작동 시키려면 이전 MembershipProvider와 관련된'web.config'의 섹션을 제거해야합니다. – trailmax

+0

@Drazen - 감사합니다. 나는 좌절에서 집을 태우려고했다 !!!!! – noelicus

+0

@noelicus 건배! 그것은 확실히 머리를 긁는 사람이었습니다. –

관련 문제