回答

5

你應該看看SimpleMembershipProvider

這是很容易與EF一起使用。

更新

對於MVC4我將與空白模板開始。

您需要WebSecurity.InitializeDatabaseConnection來設置數據庫。

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "Id", "UserName", true); 

它將連接字符串,表,唯一標識符列和用戶名列的名稱作爲參數。

我使用這段代碼上面的模型是:

WebSecurity.Login(aUsername, aPassword); 

以上方法返回一個布爾值,如果這是真的,登錄爲全成:

[Table("Users")] 
public class User 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int Id { get; set; } 

    [Required] 
    public string UserName { get; set; } 

    public string Email { get; set; } 

    public string FirstName { get; set; } 

    public string LastName { get; set; } 
} 

要登錄的人。

在Web.config中,您不需要需要使用默認的ASP.NET Membership來定義membershipProvider。

如果您需要獲得對供應商接入(刪除帳戶):

var provider = (SimpleMembershipProvider) Membership.Provider; 
provider.DeleteAccount(aUsername); // Delete the account 
provider.DeleteUser(aUsername, true); // delete the user and its data 

有關創建新用戶(在這種情況下,我給出的模型)

WebSecurity.CreateUserAndAccount(aUsername, aPassword, new { Email = aEmail, FirstName = aFirstName, LastName = aLastName }); 

好處是,您現在可以將其他EF類的模型作爲外鍵使用,而無需使用正常的asp.net成員資格執行此操作時的麻煩。 :-)

+1

嗨,如果您使用mvc 4互聯網應用程序模板。你會修改什麼來使它使用你的數據庫模式/ EF模型? – Yustme

+0

+1好點,創建一個類型爲MVC4的互聯網應用程序的新項目。這是在web.config中啓動「設置」的好地方。 –

+0

我更新了我的答案。就個人而言,我會去一個空白模板,因爲大多數時候我從默認的互聯網模板中刪除了很多,因爲我不需要它,或者我需要將它移動到其他類/名稱空間,所以我可以更快地通過自己:) –