사용자/인증 테이블이 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에서 멤버십 테이블을 생성하려면 데이터베이스 연결을 초기화해도 테이블이 필요합니다. 아마도 맞춤 멤버십 테이블을 보유 할 수있는 방법이있을 수 있습니다. 그러나 아직 알지 못했습니다.
이 스레드에서보세요 : –