2014-10-07 3 views
0

관리 페이지에 Sitecore 7.2 웹 응용 프로그램을 여러 사용자로 표시해야합니다. 표시 할 사용자의 ID는 핵심 데이터베이스와 별개의 데이터베이스에 있습니다 (키 제한없이 느슨한 관계). 이러한 사용자 ID를 추적하는 테이블을 코어 데이터베이스로 이동하는 것 외에도 ID로 여러 사용자를 얻는 좋은 방법이 있습니까? 한 사용자 또는 모든 사용자를 얻는 방법 만 볼 수 있습니다.asp.net 회원 ID로 다중 사용자 가져 오기

+0

핵심 데이터베이스가 아닌 ASP.Net 멤버십 공급자가 있다고 알고 있습니다. 어떤 테이블을 전송하면 ID로 여러 명의 사용자를 얻을 수 있습니다. – Anton

+0

아마도이 여분의 테이블을 코어 db에 추가하고 사용자가 포함 된 테이블과 아픈 엔티티 프레임 워크와 외래 키 관계를 만들 수 있습니다. 나는 아마도 브라이언의 제안을 받아 내 자신의 공급자를 만들려고 노력할 것입니다. – Teeknow

답변

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

+0

모든 사용자를 확보 할 수있는 유일한 방법이 있습니다. 그래서 필터를 필터링하는 방법을 보여줍니다. –

+3

나는 이것을 피할 것이다. 몇 천 명이 넘는 사용자가있는 경우 성능을 향상시킬 수 있습니다. – Bryan