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