2012-01-14 133 views
2

我在實體框架4中使用ASP.NET MVC 3.當用戶登錄時,我想存儲一些來自數據庫的信息,如ID,名稱等。創建了自己的CustomIdentity/CustomPrincipial,但我不希望每次施放時間,所以我創建了一個BaseController誰投的身份:ASP.Net MVC存儲CustomIdentity的最佳實踐

public class BaseController : Controller 
{ 
    public CustomIdentity CustomIdentity { get { return (CustomIdentity)User.Identity; } } 
} 

和我的所有其他控制器從BaseController interhit。但我不認爲這是一個很好的做法。有沒有更好的辦法?

回答

1

我會用一個擴展方法,以避免額外的繼承

public static CustomerIdentity Customizes(this IIdentity identity) 
{ 
    return (CustomIdentity) identity; 
} 

這是一個小更容易發現並沒有混淆是否應該使用User.Identity或CustomerIdentity。當你需要身份

var identity = User.Identity; 

,當你需要額外的屬性

var identity = User.Identity.Custmoized(); 
+0

真的很好,它的偉大工程!謝謝! – 2012-01-14 23:18:37