2013-02-19 38 views
0

我想在我的登錄屏幕上,UserGroup和UserName兩個步驟;創建更復雜的登錄頁面..哪些成員資格?

甲組

  • 用戶ID = 1個用戶名=艾哈邁德
  • 用戶ID = 2的用戶名=穆罕默德,名字=穆罕默德,姓=德米爾
  • 用戶ID = 3的用戶名=阿里,名字=阿里,姓=巴克爾

B組

  • 用戶ID = 4用戶名= VEL我
  • 用戶ID = 5名=穆罕默德,名字=穆罕默德,姓=賽因切利克
  • 用戶ID = 6名=阿里,名字=阿里,姓=pirinç

http://i.stack.imgur.com/0dasj.png

當穆罕默德德米爾想要登錄時,他必須使用aGroup,穆罕默德和他的密碼, 當穆罕默德·切利克要登錄,他已經用B組,穆罕默德和他的密碼..

我有哪些成員使用?

我嘗試使用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

我可能沒有正確理解你的問題。如果你想註冊相同的用戶名與多個組,你需要一個不同的數據庫設計。您將需要創建一個映射表,例如UsersInGroups將具有UserId和GroupId。這樣您的用戶可以擁有多個與之關聯的組。

然後,您可以查詢該表,獲取用戶ID的所有記錄並獲取所有關聯組,並比較它是否與輸入的組匹配。

+0

我更新了我的問題..你沒有任何想法嗎? – yusuf 2013-02-24 15:37:26