0

ログイン画面で UserGroup と UserName のように 2 つのステップを実行したい。

グループA

  • ユーザーID=1 ユーザー名=ahmet
  • UserID=2 Username=mehmet, name=mehmet, surname=demir
  • UserID=3 ユーザー名=ali、名前=ali、姓=bakır

グループB

  • ユーザーID=4 ユーザー名=veli
  • UserID=5 Username=mehmet, name=mehmet, surname=çelik
  • UserID=6 ユーザー名=アリ、名前=アリ、姓=ピリンチ

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

Mehmet Demir がログインしたいときは、aGroup、mehmet とパスワードを使用する必要があります。Mehmet Çelik がログインしたいときは、bGroup、mehmet とパスワードを使用する必要があります。

どのメンバーシップを使用する必要がありますか??

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 アカウント コントローラーまたはアカウント モデルをカスタマイズするにはどうすればよいですか?? または別のメンバーシップを使用しますか??

4

1 に答える 1

0

あなたの質問を正しく理解していなかったかもしれません。複数のグループに同じユーザー名を登録する場合は、異なるデータベース設計が必要になります。たとえば、UserId と GroupId を持つ UsersInGroups のマッピング テーブルを作成する必要があります。そうすれば、ユーザーは複数のグループを関連付けることができます。

次に、そのテーブルにクエリを実行し、ユーザー ID のすべてのレコードを取得し、関連するすべてのグループを取得して、入力されたグループと一致するかどうかを比較できます。

于 2013-02-20T03:28:32.750 に答える