2015-01-05 3 views
1

Использование Sitecore 6.6.current Я пытаюсь программно получить доступ к профилю пользователя.FindProfilesByUserName вызывает дублируемую ошибку ключа

Я надеюсь, что я могу найти пользователей, которые были помечены как администраторы, но больше не имеют учетной записи, поэтому я могу удалить их флаг администратора.

В качестве теста я бегу это на свой собственный счет, а именно:

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

К сожалению, когда я делаю это я получаю следующее сообщение об ошибке:

System.ArgumentException: Деталь имеет уже был добавлен. Ключ в словаре: «домен \ имя_пользователя» Ключ добавляется: «домен \ имя_пользователя»

В то время как я понимаю ошибку, я не знаю, как я могу решить эту проблему, так как он использует стандартный System.Web.Profile вызов.

Что я делаю неправильно?

ответ

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