2015-01-05 42 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); 
    } 
}