2012-03-22 82 views
1

我的網站上,當用戶登錄創建一個會話對象具有以下屬性我應該在會話中存儲用戶數據還是使用自定義配置文件提供程序?

DisplayName, 
Email, 
MemberId 

問題

  1. 會使其使用自定義配置文件提供用於保存用戶 數據更有意義?
  2. 什麼是每種方法(會話和自定義配置文件提供程序)的專業版和控制檯?
  3. 使用自定義提供程序爲 可以來自一個或多個表的只讀數據是否有意義?
+0

我不明白你的問題:當用戶放棄或閒置20分鐘時,會話過期。如果您需要持久保存數據,則可以使用.Net Profile將這些信息存儲在數據庫中。 – enricoariel 2012-03-23 09:01:15

+0

我不確定你不明白 – chobo 2012-03-23 15:38:52

回答

2

我的回答並不是直接針對你的問題。這只是一種替代方法。

我創建自定義上下文來跟蹤當前登錄用戶的配置文件,而不是自定義配置文件提供程序。這裏是示例代碼。您可以將DisplayName,Email,MemberId替換爲MyUser類。

void Application_AuthenticateRequest(object sender, EventArgs e) 
{ 
    if (HttpContext.Current.User != null && 
     HttpContext.Current.User.Identity.IsAuthenticated) 
    { 
     MyContext.Current.MyUser = YOURCODE.GetUserByUsername(HttpContext.Current.User.Identity.Name); 
    } 
} 

public class MyContext 
{ 
    private MyUser _myUser; 

    public static MyContext Current 
    { 
     get 
     { 
      if (HttpContext.Current.Items["MyContext"] == null) 
      { 
       MyContext context = new MyContext(); 
       HttpContext.Current.Items.Add("MyContext", context); 
       return context; 
      } 
      return (MyContext) HttpContext.Current.Items["MyContext"]; 
     } 
     } 

     public MyUser MyUser 
     { 

      get { return _myUser; } 
      set { _myUser = value; } 
     } 
    } 
} 
相關問題