2013-03-27 2 views
2

ASP.Net MVC 4의 단순 멤버쉽 설정 방법을 알아 내려고하고 있습니다. 현재 데이터베이스에 사용자가있는 테이블에는 'dbo'라는 스키마가 있습니다. 데이터베이스 연결을 초기화 할 때 스키마를 어떻게 지정할 수 있습니까?ASP.Net MVC 4 단순 멤버쉽 스키마 지정

  WebSecurity.InitializeDatabaseConnection 
      (
       connectionStringName: "GuessAListConnection", 
       userTableName: "UserProfile", 
       userIdColumn: "UserId", 
       userNameColumn: "UserName", 
       autoCreateTables: false 
      ); 

스키마 옵션이 없습니다. userTableName에 스키마를 추가하려고 시도했지만 오류가 발생합니다. 어떤 제안?

감사

+1

이 스레드에서보세요 :

답변

1

WebSecurity 데이터베이스 사용자의 어떤 기본 스키마를 사용합니다. 내가 아는 다른 스키마를 지정할 방법이 없습니다.

1

사용자/인증 테이블이 dbo (또는 데이터베이스 사용자의 기본 스키마)와 다른 스키마에 있고보기를 사용하는 경우 다른 솔루션을 찾았습니다.

내 데이터베이스에서 내 사용자/인증 테이블의 범위가 "보안"스키마입니다. 또한 Person 테이블이있는 Person 스키마가 있습니다. PersonName 테이블에 FirstName, LastName 만 저장합니다.

사용자 아이디, 사용자 이름, PersonId, 이름, 성, AuthenticationType, LastLoginDate, IsLockedOut

에서 내 응용 프로그램 :

나는 인증을 위해 함께 모든 테이블을 끌어와 다음 필드를 반환하고 뷰를 생성 폼, 윈도우, 페이 스북, 트위터 등 여러 가지 다른 방법으로 사람을 인증 할 수 있습니다. UserId, UserName은 다른 인증 유형과 관련이 있습니다. 나는 테이블 속성에 대한보기를 사용

[Table("__vwRegisteredUser")] 
    public class UserProfile 
    { 
    [Key] 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int UserId { get; set; } 
    public String UserName { get; set; } 
    public int PersonId { get; set; } 
    public String FirstName { get; set; } 
    public String LastName { get; set; } 
    public String AuthenticationTypeName { get; set; } 
    public Boolean IsLockedOut { get; set; } 
    public DateTime LastLoginDate { get; set; } 

    public int Id 
    { 
     get 
     { 
      return PersonId; 
     } 
    } 

    public String Name 
    { 
     get 
     { 
      return String.Format("{0} {1}", FirstName, LastName); 
     } 
    } 
} 

주의 사항 :

여기에 ASP.Net MVC 내 USERPROFILE 클래스입니다. 또한 PersonId를 Id 속성으로 반환하고 FirstName과 LastName을 Name 속성으로 연결합니다. UserName은 내 인증 유형 (Windows 사용자 이름, 양식 인증을 사용하는 경우 전자 메일 주소 또는 Facebook 또는 Twitter에서 반환하는 값)에서 되돌아 오는 값입니다. 그래서, 내 Security.Authentication 테이블에서 UserName에 일관성이 없습니다.

SimpleMembership에서 멤버십 테이블을 생성하려면 데이터베이스 연결을 초기화해도 테이블이 필요합니다. 아마도 맞춤 멤버십 테이블을 보유 할 수있는 방법이있을 수 있습니다. 그러나 아직 알지 못했습니다.