1

我正在實現一個自定義MembershipProvider,並且我試圖讓ValidateUser方法在我的Profiles表中在SQL Server中進行驗證。該表格有名爲UserNamePassword的列。在MembershipProvider中實現自定義「ValidateUser」

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

僅供參考,我使用MVC3 & EF 4.1代碼第一次。

感謝

保羅

回答

2

如果您正在使用EF 4.1,你將有某種DbContext對象包含DbSetProfiles表 - 對嗎?

因此,在這種情況下,使用此:

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()'由於其保護級別而無法訪問 感謝Paul – 2011-03-25 12:41:05

+1

@Paul Brown:您需要用具體的數據庫上下文替換'DbContext'(我不知道它叫什麼 - 它應該是一個派生自'DbContext'的類) – 2011-03-25 12:49:01

+0

@ marc_s - 非常好,得到了排序。現在最後一件事......「var profile」給出了「不能將方法組分配給隱式類型局部變量」 有什麼想法嗎? 非常感謝您的幫助! – 2011-03-25 12:58:34

相關問題