2012-09-07 1 views
1

내가해야 할 시점에 프로젝트의 관리자 측을 구축 중입니다. - 새 사용자를 만들고 그 사용자에 대한 특정 정보 (예 : 위치, 위치 등등) - 다른 사용자가 다른 역할에 할당되어야합니다.MVC3 특정 역할 및 추가 정보로 모든 사용자 관리

내가 원했던 것은 기존 사용자의 정보를 내부 테이블에있는 정보로 결합하고 다른 역할별로 필터링하는 것이 었습니다.

public class UserDetail 
{ 
    [HiddenInput(DisplayValue = false)] 
    public string UserId { get; set; } 

    public int StoreID { get; set; } 

    public string PositionID { get; set; } 
} 

컨트롤러에서 처음에는 UserID 레벨에서 위의 UserDetail 클래스와 Membership 클래스 및 내부 조인의 데이터를 처음부터 내부로 조인하는 것이 간단합니다. 그래서 문제는 내가 처음에만 대신 그들 모두 다음 위의 UserDetail 클래스와 참여 방법 내부를 특정 역할에있는 사람들을 끌어 방법을 모르는 것입니다 코드

public ActionResult Index() 
    { 
     var allSystemUsers = Membership.GetAllUsers().Cast<MembershipUser>() 
      .Select(user => new {user.UserName, user.Email, user.CreationDate, user.LastLoginDate }); 

        return View(); 
    } 

의 다음 조각을 사용했다. 내가 색인 ActionaResult이 있으면

은 내가 만들 수있을 것입니다 희망 - 생성 및 편집 기능 당신은 또한 .Skip.Take를 사용할 수있는 단지 .Select을 사용할 필요가 없습니다

답변

0

. .OrderBy을 사용하여 반복 주문을 설정하고 .Where을 사용하여 포함하지 않을 사용자를 필터링 할 수도 있습니다.

자신을 굴리려는 경우입니다.

이제는 자신 만의 롤링을 원한다면 찾고있는 것이 아니 겠지만 Troy Goode은 회원을 위해 가장 우수한 지역 기반 접근 방식을 작성했습니다. 필요한 경우 GitHub에서 프로파일을 포크하고 프로파일을 사용하도록 변경할 수 있습니다. 또는 EF 코드를 통해 사용자에게 추가 정보를 바인딩 할 수 있습니다.

https://github.com/TroyGoode/MembershipStarterKit

이 좋은 출발점이 될 것입니다 및 홉 떨어져 당신을위한 사용자 관리의 대부분을 처리합니다. 그것이 지역으로 끼워 넣을 때, 당신의 위치의 나머지에 대한 최소 충격이있다.

List<string> users = Roles.GetUsersInRole("someRole"); 

이 지정된 역할에 할당 된 모든 사용자의 사용자 이름의 목록을 반환합니다 특정 역할에

0

얻으려면 사용자는 역할 공급자를 사용합니다. 그런 다음 users 목록을 반복하여 원하는 세부 정보를 얻을 수 있습니다. 프로파일 제공자를 사용하는 것이 UserDetail를 기억

foreach(var user in users) 
{ 
    //do stuff 
} 

약간 쉽게 접근 (이럴)는 mvc3 프레임 워크에 포함. 그런 다음 세 가지 공급자 (멤버십, 역할 및 프로필)를 사용하도록 설계되었으므로 이들을 함께 사용할 수 있습니다.