FindProfilesByUserName引发重复键错误

时间:2015-01-05 14:41:01

标签: c# sitecore profile sitecore6

使用Sitecore 6.6.current我正在尝试以编程方式访问用户的个人资料。

我希望我能找到任何已被标记为管理员但又不再拥有帐户的用户,以便我可以删除他们的管理员标记。

作为测试,我在我自己的帐户中运行此操作,如下所示:

var profiles = ProfileManager.FindProfilesByUserName(
    ProfileAuthenticationOption.Authenticated,
    @"domain\userName"
);

不幸的是,当我这样做时,我收到以下错误:

System.ArgumentException:已添加项目。键入字典:'domain \ userName'要添加的键:'domain \ userName'

虽然我理解错误,但我不确定如何解决此问题,因为它正在使用标准System.Web.Profile调用。

我做错了什么?

1 个答案:

答案 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);
    }
}