我正在轉換在SimpleMembership中使用的經典ASP.Net成員提供程序中序列化的用戶配置文件數據。我無法弄清楚如何爲系統中的每個用戶獲取ProfileBase
對象。加載沒有HTTP的配置文件上下文
如果特定用戶登錄時,我可以這樣做:
MyModel myModel =
(MyModel)HttpContext.Current.Profile.GetPropertyValue("MyKey");
其中的myKey是指這樣成立於web.config
輪廓關鍵:
<add name="MyModel" type="MyNS.MyModel" serializeAs="Binary" />
然而,沒有HTTP上下文的好處(我試圖爲系統中的所有用戶執行此操作,而不是登錄用戶)我無法弄清楚如何加載配置文件並最終導致我爲系統中的每個用戶提供MyModel
的實例。
我曾嘗試:
ProfileInfoCollection profiles =
ProfileManager.GetAllProfiles(ProfileAuthenticationOption.All);
foreach (var profile in profiles)
{
var pi = (ProfileBase)profile;
// OOPS! Unfortunately GetAllProfiles returns
// ProfileInfo and not ProfileCommon or ProfileBase
}
和
MembershipUserCollection existingUsers = Membership.GetAllUsers();
foreach (MembershipUser mu in existingUsers)
{
mu. // OOPS! No link to the profile from the user...
}
我怎樣才能檢索到的每個配置文件的ProfileCommon
或ProfileBase
例如在系統中,從而最終與每個用戶相關的MyModel
?