ASPNETDB 表和視圖(3) 個性化用戶配置、頁面個性化設置 表 和視圖

個性化用戶配置(用戶自定義屬性)表


由此表結構可以看出,所有的用戶自定義屬性最後都是“打包”(序列化)成一個或兩個數據塊,
存放在PropertyValuesString(序列化爲string、Xml) 和(或) PropertyValuesBinary(序列化爲Binary)
兩個(或其中之一)字段中,因此要求用戶自定義屬性必須支持序列化。

序列化方式可由web.config中的serializeAs指定,SqlProfileProvider默認序列化方式爲String。

例如用戶在web.config中配置瞭如下自定義屬性,這裏的serializeAs="String" 僅僅爲了表示
可以用戶可以自行指定序列化方式,謝不寫是一個樣的:

<system.web>
  ...
  <connectionStrings>
    <add connectionString="..."/>
  </connectionStrings>
  ...
  <profile defaultProvider="SqlSrvProfileProvider">
     <providers>
       ...
         </providers>
    <properties>
         <add type="System.String"  serializeAs="String" />
         <group >
             <add type="System.String"  serializeAs="String" />
             <add type="System.String" serializeAs="String"  />
            <add type="System.DateTime" serializeAs="String" />
         </group>
      </properties>
  </profile>
  ...
</system.web> 

並運行了aspx頁面中的以下C#代碼:

this.Profile.ThemeName = "Blue";
this.Profile.PersonalInfo.FirstName = "John";
this.Profile.PersonalInfo.LastName = "Smith";
this.Profile.PersonalInfo.Birthday = new DateTime(1970, 11, 22);

然後打開數據庫中的aspnet_Profile查看錶,兩個字段的內容分別爲:
PropertyNames:        "PersonalInfo.FirstName:S:0:4:PersonalInfo.Birthday:S:4:81:PersonalInfo.LastName:S:85:5:ThemeName:S:90:4:"
PropertyValuesString:"John 1970-11-22T00:00:00SmithBlue"

注:以後在實現自定義用戶配置提供程序(ProfileProvider) 一文中我會更詳盡地討論。


有關頁面個性化設置的3個表

關係圖


頁面路徑(地址)表


處於共享範圍(Shared Scope)的頁面個性化設置表


處於單用戶範圍(User Scope)的頁面個性化設置表



視圖
  1. aspnet_Applications表的全表視圖。

    vw_aspnet_Applications
  2. aspnet_Membership表與aspnet_Users表的關聯視圖

    vw_aspnet_MembershipUsers
  3. 返回aspnet_Profiles表的用戶ID、上次修改時間
    和屬性名稱串、字符串屬性值、二進制屬性值的總長度

    vw_aspnet_Profiles
  4. aspnet_Roles表的全表視圖。

    vw_aspnet_Roles
  5. aspnet_Users表的全表視圖。

    vw_aspnet_Users
  6. aspnet_UsersInRoles表的全表視圖。

    vw_aspnet_UsersInRoles
  7. aspnet_Paths表的全表視圖。

    vw_aspnet_WebPartState_Paths
  8. 返回aspnet_PersonalizationAllUsers表的頁面路徑ID、
    以二進制形式保存的頁面配置屬性的長度和上次修改時間。

    vw_aspnet_WebPartState_Shared
  9. 返回aspnet_WebPartState_User表的頁面路徑ID、用戶ID、
    以二進制形式保存的頁面配置屬性的長度和上次修改時間。

    vw_aspnet_WebPartState_User
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章