2014-10-07 50 views
0

我需要在管理頁面上顯示Sitecore 7.2網絡應用程序的多個用戶。要顯示用戶的ID位於與核心數據庫分開的數據庫中(沒有密鑰約束的鬆散關係)。除了將跟蹤這些用戶標識的表移入核心數據庫之外,是否有一種通過標識獲取多個用戶的好方法?我只看到獲取一個用戶或所有用戶的方法。asp.net會員通過ID獲取多個用戶

+0

據我瞭解,您的ASP.Net會員提供商配置不在覈心數據庫。如何轉移某個表可以幫助您通過id獲取多個用戶? – Anton 2014-10-08 15:01:41

+0

我可以將這個額外的表添加到核心數據庫中,與包含用戶的表和外部實體框架建立外鍵關係。我想我可能會跟着布萊恩的建議去嘗試創建我自己的提供商。 – Teeknow 2014-10-08 22:24:23

回答

1

「多重?」有多少?如果它介於2到100之間,那麼我只需編寫一個帶有ID的小實用程序,然後逐個加載它們。

如果你真的需要一次加載100-1000個用戶......你可能需要創建自己的提供者。 Sitecore的用戶API只是標準ASP.NET成員資格的瘦身包裝。它使用了一個相當直接的提供者模型。

如果您想在任何類型的性能關鍵上下文中訪問用戶配置文件,您將絕對必須提供您自己的系統。默認系統非常慢,主要是由於令人難以置信的奇怪的SQL模式。

0

您將需要使用該方法獲取所有用戶並通過您的ID列表(我假設您指的是用戶名)過濾該方法。

using System.Web.Security; 

string[] userIds = { "username1", "username2", "username3" }; 

var users = Membership.GetAllUsers() 
    .Cast<MembershipUser>() 
    .Where(x => userIds.Contains(x.UserName)); 
+0

我想Frontenderman已經能夠獲得所有用戶。 「我只看到讓一個用戶或所有用戶獲得方法。」 – Anton 2014-10-08 14:54:50

+0

只有一種獲取所有用戶的方法。這就是爲什麼我要展示如何過濾它們。 – 2014-10-08 14:57:50

+3

我會避免這樣做。如果您的用戶數量超過了幾千,那麼性能將使其成爲不可行的解決方案。 – Bryan 2014-10-08 21:27:26