使用Sitecore 6.6.current我正在尝试以编程方式访问用户的个人资料。
我希望我能找到任何已被标记为管理员但又不再拥有帐户的用户,以便我可以删除他们的管理员标记。
作为测试,我在我自己的帐户中运行此操作,如下所示:
var profiles = ProfileManager.FindProfilesByUserName(
ProfileAuthenticationOption.Authenticated,
@"domain\userName"
);
不幸的是,当我这样做时,我收到以下错误:
System.ArgumentException:已添加项目。键入字典:'domain \ userName'要添加的键:'domain \ userName'
虽然我理解错误,但我不确定如何解决此问题,因为它正在使用标准System.Web.Profile
调用。
我做错了什么?
答案 0 :(得分:1)
这并没有解决我的问题,但似乎Sitecore正在保存这些没有域名的活动目录帐户。
通过循环用户并转储用户名来发现:
var allUsers = Membership.GetAllUsers();
if (allUsers.Count > 0)
{
actionResults.InnerHtml += allUsers.Count + "<br />";
try
{
var count = 0;
foreach (var user in allUsers)
{
actionResults.InnerHtml += user.ToString() + "<br />";
count++;
if (count > 50)
{
break;
}
}
}
catch (Exception ex)
{
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
}
}