FindProfilesByUserName 抛出重复键错误

本文关键字:错误 FindProfilesByUserName | 更新日期: 2023-09-27 18:36:20

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

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

作为测试,我针对自己的帐户运行此帐户,如下所示:

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

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

System.ArgumentException : 已添加项目。字典中的键:"域''用户名" 正在添加的键:"域''用户名"

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

我做错了什么?

FindProfilesByUserName 抛出重复键错误

这并没有解决我的问题,但似乎 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);
    }
}