2009-08-02 26 views
1

我正在使用的兩個Web應用程序正在使用ASP.NET成員資格,並且每個都有用於在數據庫中使用此屬性名稱/值存儲方法的用戶信息的區域。如何解析PropertyName的PropertyValue數據?

下面是一個例子:

PropertyNameValues

publicEmail:S:0:19:yahooIM:S:19:0:timezone:S:19:2:commonName:S:21:4:birthdate:S:25:81:signatureFormatted:S:106:0:gender:S:106:1:fontsize:S:107:1:signature:S:108:0:dateFormat:S:108:15:enableEmoticons:S:123:4:webLog:S:127:0:enablePostPreviewPopup:S:127:5:location:S:132:12:bio:S:144:0:webAddress:S:144:0:interests:S:144:0:icqIM:S:144:0:aolIM:S:144:0:language:S:144:5:occupation:S:149:0:msnIM:S:149:0: 

PropertyValues

[email protected]<?xml version="1.0" encoding="utf-16"?> 
<dateTime>0001-01-01T00:00:00</dateTime>20ddd, MMM d yyyyTrueFalseTest Testing-US 

我可以看到它是如何工作的JIST,名稱值顯示在什麼長度的屬性值字符串中開始抓取和何時結束 - 但是有一個現有的功能將這些拆分成數組或其他東西?

謝謝!

回答

1

它看起來像你指的是ASP.NET Profile system

在aspx頁面的代碼隱藏內,只需使用Profile.publicEmailProfile.yahooIM等。有一個自動生成的類爲您解析。有關更多詳細信息,請參閱鏈接文章

2

這是如何工作的取決於如果您使用的是「網站」或「網絡應用」項目類型。如果您使用的是常規的asp.net網站項目,您將擁有一個可用於從中獲取用戶屬性的動態生成的Profile對象。

如果您的應用程序是MVC或Web應用程序項目,雖然,你將不得不作出自己的個人資料的對象。我建議你抓住web profile builder。此工具將創建ProfileCommon對象,該對象需要獲取配置文件數據。

一般情況下,我個人通過反覆接觸發現,在asp.net中提供的個人資料提供系統是用於存儲實際的用戶信息(你正在使用它的東西的那種)相當可怕的。配置文件提供程序機制對於諸如「始終顯示詳細信息」或「我更喜歡綠色背景」之類的用戶偏好(通常稱爲個性化的內容)等內容非常適用。原因是配置文件系統只能在一個用戶的請求範圍內輕鬆訪問配置文件數據。如果您的管理工具需要從多個用戶的配置文件中讀取,您會發現性能會迅速退化,而查看配置文件數據實際上相當困難。

基於這些原因,我建議您考慮不使用配置文件系統的類型要存儲有數據的。你會更好地滾動自己的表和對象來存儲和獲取這種特殊類型的信息。但是,如果您從不需要一次訪問多個用戶的數據,那麼內置配置文件是可以的。