Sitecore GetCustomPropertyNames不会返回自定义配置文件的所有可用字段名称

时间:2014-01-15 17:21:30

标签: sitecore sitecore6

我正在尝试构建一个表单,该表单将值从一个字段复制到另一个字段,用于一组用户的配置文件。我已检查所有用户是否分配了相同的配置文件(通过使用user.Profile.ProfileItemId检查配置文件ID,我也在用户管理器工具中检查了相同的内容,对于某些用户)。
在将值从一个字段移动到另一个字段之前,我想检查输入的字段名称是否实际存在于当前用户的配置文件中,因此我为每个用户的配置文件调用GetCustomPropertyNames并检查字段名称是否存在于字段名称列表中方法返回。
我注意到,对于某些用户,并不是所有的字段名都被返回。缺少的字段列在“用户详细信息”对话框中,没有值(空字段)。为未列出的字段添加值或清除列出的字段似乎不会更改GetCustomPropertyNames方法的结果。 是否有任何特殊命令必须事先执行,或者是否有任何必须满足的特殊条件才能确定返回整个可用字段名称的方法?

1 个答案:

答案 0 :(得分:0)

你可以尝试这样做:

var userList = Sitecore.Security.Accounts.UserManager.GetUsers();


foreach (Sitecore.Security.Accounts.User user in userList)
{
    Sitecore.Security.UserProfile profile = user.Profile;
    string whatever = profile["Field Name"];

}

ASP.NET配置文件用于在数据源(如数据库)中存储和检索用户设置。使用当前HttpContext的Profile属性访问用户配置文件。使用配置文件提供程序管理配置文件信息和属性值。 ASP.NET使用SqlProfileProvider(Sitecore默认使用)来存储和检索使用SQL Server数据库的ASP.NET应用程序的配置文件设置。