2011-03-31 28 views
1

我正在使用.NET MVC3項目的窗體身份驗證。我也爲此使用了EntityFramework。用戶處理非常簡單。雖然問題是,我如何將用戶與模型相關聯?將窗體身份驗證用戶關聯到模型

說我有一個簡單的樁模型:

public class Post 
{ 
    public int ID { get; set; } 
    public string Title { get; set; } 
    public string Text { get; set; } 
    public DateTime Updated { get; set; } 
    //public MembershipUser Author { get; set; } 
} 

注意的作者字段。我如何將用戶鏈接到它?

回答

1

我正在使用nHydrate和EF的MVC3項目。在努力獲得MembershipUser和MembershipProvider以使用nHydrate框架之後,我突然意識到,我確實沒有特別需要使用ASP.NET Membership ......的東西。最後,將我自己的身份驗證方法包括在我寫的數據層中會簡單得多。

因此,FWIW,你可能需要問自己爲什麼需要使用內置的Membership ...東西。如果你不打算成爲一個遺留系統,你可能會發現它並沒有給你帶來太多的收益。

1

我假設你的Post對象是視圖模型。

創建一個扁平User對象,其中包含有關用戶視圖的信息。如果你犯了個後視圖,像計算器的那些,這將可能類似於:

public class User{ 
    public string DisplayName {get;set;} 
    public string AvatarUrl{get;set;} 
    public int Reputation {get;set;} 
    public int GoldBadges{get;set; 
    public int SilverBadges{get;set; 
    public int BronzeBadges{get;set; 
} 

那麼你將只是屬性添加到您的視圖模型。

在你正在做認證就像登錄的情況下,你可能需要一個單獨的輸入模型,如:

public class LogonModel{ 
     public string Username{get;set;} 
     public string Password{get;set;} 
     public bool RememberMe{get;set;} 
} 

所有的輸入模型的結合,你的MembershipUser可以發生在一個模型綁定器,並您的實際業務邏輯應該發生在您的Controller中。