2013-02-19 2 views
0

내 로그인 화면에서 UserGroup 및 UserName과 같은 두 단계를 원합니다.더 복잡한 로그인 페이지 만들기 .. 어떤 회원입니까?

그룹 A

  • 아이디 = 1 자명 = 아멧
  • 아이디 = 2 자명 = 멧 이름 = 멧, 성 = 미르
  • 아이디 = 3 자명 = 알리 NAME = 알리 성 = bakır

그룹 B

  • 아이디 = 4 = 자명 VEL I
  • 아이디 = 5 자명 = 멧 이름 = 멧, 성 = 셀릭
  • 아이디 = 6 자명 = 알리 NAME = 알리 성 가

    가 가 멧 미르 원하는

    http://i.stack.imgur.com/0dasj.png = pirinç

로그인, 그는 내가 사용해야하는 어떤 회원 .. aGroup, 메 메트와 그의 비밀, 메 메트 셀릭 로그인하고자 할 때 , 그는 bGroup, 메 흐멧 자신의 암호를 사용하는을 사용하는

이있다?

ASP.NET SimpleMembership을 사용하려고합니다. 내 데이터베이스 다이어그램은;

http://i.stack.imgur.com/yVpKp.png

나는 그것은 작동하지만 나는 물론 새로운 사용자를 생성 할 때 내가 다른 사용자 그룹에 동일한 사용자 이름을 등록 기운이

[HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public ActionResult Login(LoginModel model, string returnUrl) 
    { 
     if (model.UserGroupName != null) 
     { 
      UsersContext userContext = new UsersContext(); 
      DbEntities db = new DbEntities(); 
      var userGroupName = model.UserGroupName; 
      var userGroupID = db.UserGroups.Where(a => a.UserGroupName == userGroupName).Select(b => b.UserGroupID).Single(); 
      var userName = userContext.UserProfiles.Where(c => c.UserGroupID == userGroupID).Select(d => d.UserName); 

      if (userName.Contains(model.UserName)) 
      { 
       if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password)) 
       { 
        return RedirectToLocal(returnUrl); 
       } 
      } 


     } 
     // If we got this far, something failed, redisplay form 
     ModelState.AddModelError("", "User group, username or password is incorrect.."); 
     return View(model); 
    } 

같은 시도 ..

어떻게 SimpleMembership 계정 컨트롤러 또는 계정 모델을 사용자 정의합니까 ?? 또는 다른 멤버십 사용하기 ??

답변

0

귀하의 질문을 올바르게 이해하지 못했을 수 있습니다. 동일한 사용자 이름을 여러 그룹에 등록하려면 다른 데이터베이스 설계가 필요합니다. UserId 및 GroupId가있는 UsersInGroups와 같은 매핑 테이블을 만들어야합니다. 그렇게하면 사용자가 여러 그룹과 연결될 수 있습니다.

그런 다음 해당 테이블을 쿼리하고 사용자 ID에 대한 모든 레코드를 가져 와서 관련된 모든 그룹을 가져 와서 입력 된 그룹과 일치하는지 비교할 수 있습니다.

+0

내 질문이 업데이트되었습니다. 어떤 생각이 있습니까? – yusuf