1

사용자 지정 MembershipProvider를 구현하고 있는데 ValidateUser 메서드를 사용하여 SQL Server의 Profiles 테이블에 대해 유효성을 검사하려고합니다. 이 테이블에는 UserNamePassword이라는 열이 있습니다.MembershipProvider에서 사용자 지정 "ValidateUser"구현

public override bool ValidateUser(string username, string password) 
{ 
    ??? what to do here??? 
} 

참고로, 나는 MVC3 & EF 4.1 코드 먼저 사용하고 있습니다.

감사

답변

2

당신이 EF 4.1을 사용하는 경우, 당신은 당신의 Profiles 테이블에 대한 DbSet을 포함하는 DbContext 객체의 어떤 것 - 괜찮아?

그래서 그 경우에, 이것을 사용 :

public override bool ValidateUser(string username, string password) 
{ 
    using(DbContext yourCtx = new DbContext()) 
    { 
     // from your "Profiles" DbSet, retrieve that single entry which 
     // matches the username/password being passed in 

     var profile = (from p in yourCtx.Profiles 
         where p.UserName == username && p.Password == password 
         select p).SingleOrDefault(); 

     // if that query returns a "Profile" (is != null), then your 
     // username/password combo is valid - otherwise, it's not valid 
     return (profile != null); 
    } 
} 
+0

우수한 :) 그러나 VS 선을 좋아되지 않습니다 를 사용하여 (DbContext yourCtx = 새로운 DbContext()) 은 ... 말한다 '시스템. Data.Entity.DbContext.DbContext() '보호 수준으로 인해 액세스 할 수 없습니다. 감사 폴 –

+1

@Paul Brown : 구체적인 데이터베이스 컨텍스트로'DbContext '를 대체해야합니다. 'DbContext'에서 파생 된 클래스 여야합니다.) –

+0

@ marc_s - 우수합니다. 이제 마지막으로 한 가지 ... "var profile"은 "암시 적으로 입력 된 로컬 변수에 메서드 그룹을 할당 할 수 없습니다." 아이디어가 있습니까? 도움을 주셔서 감사합니다. –

관련 문제